Re[21]: Не пора ли нам перейти на D
От: VladD2 Российская Империя www.nemerle.org
Дата: 06.03.07 18:54
Оценка:
Здравствуйте, Курилка, Вы писали:

VD>>А конструкция sin x — 1 будет точно так же однозначно понята как (sin * x) — 1.


К>Тут тоже мат. значение и значение выражения в Хаскеле совпадают.

К>Влад, ты в чём разницу нашёл-то?

Что совподает то?
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[22]: Не пора ли нам перейти на D
От: Курилка Россия http://kirya.narod.ru/
Дата: 07.03.07 07:50
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Здравствуйте, Курилка, Вы писали:


VD>>>А конструкция sin x — 1 будет точно так же однозначно понята как (sin * x) — 1.


К>>Тут тоже мат. значение и значение выражения в Хаскеле совпадают.

К>>Влад, ты в чём разницу нашёл-то?

VD>Что совподает то?


Приоритеты и значения выражений, т.е. например sin x — 1 == (sin * x) — 1
Но мне уже надоело искать где ты проблему видишь, если честно. Ты хаскелем вроде не пользуешься, поэтому не страшно, наверное.
Re[23]: Не пора ли нам перейти на D
От: deniok Россия  
Дата: 07.03.07 10:01
Оценка: +1
Здравствуйте, Курилка, Вы писали:

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


К>Приоритеты и значения выражений, т.е. например sin x — 1 == (sin * x) — 1


Хватит путаницы на ровном месте!

Конечно, умножение всегда должно указываться явно, в отличие от школьной алгебры. И, конечно, sin x — 1 не есть (sin * x) — 1.
Re[24]: Не пора ли нам перейти на D
От: Курилка Россия http://kirya.narod.ru/
Дата: 07.03.07 10:17
Оценка:
Здравствуйте, deniok, Вы писали:

D>Здравствуйте, Курилка, Вы писали:


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


К>>Приоритеты и значения выражений, т.е. например sin x — 1 == (sin * x) — 1


D>Хватит путаницы на ровном месте!


D>Конечно, умножение всегда должно указываться явно, в отличие от школьной алгебры. И, конечно, sin x — 1 не есть (sin * x) — 1.


Фига
Я до такого не додумался
Re[24]: Не пора ли нам перейти на D
От: Курилка Россия http://kirya.narod.ru/
Дата: 07.03.07 10:18
Оценка:
Здравствуйте, deniok, Вы писали:

D>Здравствуйте, Курилка, Вы писали:


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


К>>Приоритеты и значения выражений, т.е. например sin x — 1 == (sin * x) — 1


D>Хватит путаницы на ровном месте!


D>Конечно, умножение всегда должно указываться явно, в отличие от школьной алгебры. И, конечно, sin x — 1 не есть (sin * x) — 1.


Блин, звёздочку-то я и не приметил, мда, запылились глаза уже, сорри
Re[25]: Не пора ли нам перейти на D
От: VladD2 Российская Империя www.nemerle.org
Дата: 07.03.07 22:00
Оценка:
Здравствуйте, Курилка, Вы писали:

К>Блин, звёздочку-то я и не приметил, мда, запылились глаза уже, сорри


Я правильно понимаю, что вопрос знаком равенства между семантикой Хаскеля и "привычной всем школьной математикоЙ" снят?
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[48]: Не пора ли нам перейти на D
От: VladD2 Российская Империя www.nemerle.org
Дата: 17.03.07 03:12
Оценка:
Здравствуйте, EvilChild, Вы писали:

EC>Это было бы очень здорово, более высокого уровня экпертизы по данной теме я здесь ещё не встречал.


Cyberax действительно соображает о чем говорит, но ты уж сильно преувуличиваешь о картах корней GC говорится в любой статье посвященной этому поводу, а безопасные точки единственный способ сделать их более менее компактными. Просто вопрос в том, что алгоритмы GC — это очень низкоуровневая и своеборазная область. Реально она мало кому интересна.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[49]: Не пора ли нам перейти на D
От: EvilChild Ниоткуда  
Дата: 17.03.07 07:26
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Cyberax действительно соображает о чем говорит, но ты уж сильно преувуличиваешь о картах корней GC говорится в любой статье посвященной этому поводу, а безопасные точки единственный способ сделать их более менее компактными.

Да дело не в картах, просто у Cyberax'а есть подробная и целостностная картина в данном вопросе, подкреплённая нехилой практикой и есть желание поделиться этим знанием с другими — разве бывают лучшие предпосылки для статьи?

VD>Просто вопрос в том, что алгоритмы GC — это очень низкоуровневая и своеборазная область. Реально она мало кому интересна.

Если статья будет её будут читать те, кому она реально интересна, вот и всё.

В общем я не понял, что ты хотел своим постом сказать.
now playing: Peter Gabriel — Sledgehammer
Re[50]: Не пора ли нам перейти на D
От: VladD2 Российская Империя www.nemerle.org
Дата: 17.03.07 15:30
Оценка:
Здравствуйте, EvilChild, Вы писали:

EC>Да дело не в картах, просто у Cyberax'а есть подробная и целостностная картина в данном вопросе, подкреплённая нехилой практикой и есть желание поделиться этим знанием с другими — разве бывают лучшие предпосылки для статьи?


Откуда практика то? О чем ты? А теорией можешь разжиться через гугль. Набирашь те самые базворды GC "safe point" "GC root" map. Например, там во первых редах сразу попалась глава из книжки посвященной Ротору. ЖЦ дотнета посложнее, но принципы те же.

А практика тебя разочарует. Это очень низкоуровневый и запутанный код. Там главное оптимизации. Алгоритмы давно извесны, но львиная доля успеха зависит от деталей.

Единственное, что есйчас интересно в этой област с точки зрения теории — это анализ потока данных и автоматическое размещение объектов на стеке. Вот только пока что нет ни одной удовлетворительно работающей реализации. Сан ведет работы над этим (эскейп-анализ называется) и пара институтов. Но будет ли выхлоп и какой он будет пока не ясно. Хотя технология очень многообещающая. По радостным рекламным возгласам эффективность управления памятью в плотную приблизится к лучшиму что можно достигнуь управляя памятью вручную (не путать с тем чего достигают большинство обывателей).

Вот только боюсь, что это вся доступная информация по этому поводу .

VD>>Просто вопрос в том, что алгоритмы GC — это очень низкоуровневая и своеборазная область. Реально она мало кому интересна.

EC>Если статья будет её будут читать те, кому она реально интересна, вот и всё.

Она интересна 5-10 коллективам которые занимаются эторй проблематикой. И боюсь, что все они русский не знают. Еще раз повторюсь — это очень низкоуровневая область. Это пожалуй единственное что в современных ОС имеет смысл писать на смеси С и ассемблера. Битовыжимание в общем.

Как показали отлики на мою статью о ЖЦ даже куда более высокоуровневое изложение интересно еденицам.

EC>В общем я не понял, что ты хотел своим постом сказать.


Я тебе объсняю, что тебе это интересно на очень поверхностном уровен. Если действительно писать серьезную статью, то получится переусложненная научная рабта на которую ты и не взглянишь. Таких (правда на английском) довольно много в открытом доступе валяется. Есть даже пара книг специально алгоритмам сборки мусора посвященных. Но ты их даже не посмотришь.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[51]: Не пора ли нам перейти на D
От: EvilChild Ниоткуда  
Дата: 17.03.07 18:06
Оценка:
Здравствуйте, VladD2, Вы писали:

Надеюсь Cyberax твоё сообщение не читал, а если читал, то напишет статью не смотря на него.
now playing: Quinoline Yellow — A Fraction Of Crouching
Re[51]: Не пора ли нам перейти на D
От: Cyberax Марс  
Дата: 18.03.07 11:41
Оценка: 8 (2)
VladD2 wrote:
> Откуда практика то? О чем ты? А теорией можешь разжиться через гугль.
Практики у меня немного есть. Я когда-то начинал писать точный GC для
Mono — как раз дошел до того, что у меня строились карты стека. Потом
надоело

> Набирашь те самые базворды GC "safe point" "GC root" map

> <http://www.google.ru/search?hl=ru&amp;q=GC+%22safe+point%22+%22GC+root%22+map&amp;lr=&gt;.
> Например, там во первых редах сразу попалась глава из книжки посвященной
> Ротору <http://www.oreilly.com/catalog/sscliess/chapter/ch07.pdf&gt;. ЖЦ
> дотнета посложнее, но принципы те же.
К сожалению, не все так просто. Хороших статей про внутреннее
описание работы тонких моментов в GC не так уж и много. Все что есть —
это, в основном, пересказы про то как работают механизмы GC с поколениями.

Например, организации safepoint'ов уделено не так уж много статей. В
твоей статье в про SSCLI используется самый простой и тупой подход —
поллинг.

Для сравнения — вот хороший отчет о GC safepoint'ах в JVM:
http://research.sun.com/techrep/1998/smli_tr-98-70.pdf

> Единственное, что есйчас интересно в этой област с точки зрения теории —

> это анализ потока данных и автоматическое размещение объектов на стеке.
> Вот только пока что нет ни одной удовлетворительно работающей
> реализации. Сан ведет работы над этим (эскейп-анализ называется) и пара
> институтов.
Тут в теории нет ничего сложного — просто строим CFG и ищем объекты,
которые не выходят за границы метода.

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

> Но будет ли выхлоп и какой он будет пока не ясно. Хотя

> технология очень многообещающая. По радостным рекламным возгласам
> эффективность управления памятью в плотную приблизится к лучшиму что
> можно достигнуь управляя памятью вручную (не путать с тем чего достигают
> большинство обывателей).
Кстати, escape-анализ уже, скорее, относится к JIT, а не к GC. Я об этом
уже с WolfHound'ом говорил.

Ну и на ручное управление памятью не надо наезжать, оно живее всех живых

> Вот только боюсь, что это вся доступная информация по этому поводу .

Есть куча статей на Sun'е и вообще в Вэбе, но это надо ее целенаправлено
искать.

> Как показали отлики на мою статью о ЖЦ даже куда более высокоуровневое

> изложение интересно еденицам.
Я ее прочел

> Есть даже пара книг специально алгоритмам сборки мусора посвященных.

> Но ты их даже не посмотришь.
Собственно, я знаю только одну хорошую книгу —
http://www.amazon.com/Garbage-Collection-Algorithms-Automatic-Management/dp/0471941484
Posted via RSDN NNTP Server 2.1 beta
Sapienti sat!
Re[52]: Не пора ли нам перейти на D
От: VladD2 Российская Империя www.nemerle.org
Дата: 18.03.07 14:16
Оценка:
Здравствуйте, EvilChild, Вы писали:

EC>Надеюсь Cyberax твоё сообщение не читал, а если читал, то напишет статью не смотря на него.


Я не против статьи. Я просто заранее предупреждаю о том, что это будет очень узкоспецифичная вещь.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[52]: Не пора ли нам перейти на D
От: VladD2 Российская Империя www.nemerle.org
Дата: 18.03.07 14:16
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>К сожалению, не все так просто. Хороших статей про внутреннее

C>описание работы тонких моментов в GC не так уж и много. Все что есть —
C>это, в основном, пересказы про то как работают механизмы GC с поколениями.

Не ты ли как то тут давал ссылку на сайт где описывались все возможные варинты GC вклюя инкрементальные и параллельные?

C>Например, организации safepoint'ов уделено не так уж много статей. В

C>твоей статье в про SSCLI используется самый простой и тупой подход —
C>поллинг.

Там описывается то что есть в Роторе. Собственно для понимания принципов этого более чем достаточно. А детали и есть детали. Все равно в основе базовая идея создания карт для некоторых участков кода.

C>Тут в теории нет ничего сложного


В теории GC — это элементарнь.
Вот только на практике GC был еще в Симуле, но Страуступ что-то отказался от реализации GC в С++ только на том основании, что не верил, что в приципе можно создать достаточно эффективный GC. Только в 1994 году Страуступ сказал, что возможно сейчас и можно было бы создать эффективный GC (так как теория продвинулась даеко вперд), но вот совместимость, да и все равно я не верю, в то что GC...

В общем, теория и практика разные вещи. Именно по этому сейчас почти все исследования в области GC — это практические исследования или исселодования с большим объемом практического тестирования и сравнений.

C> — просто строим CFG и ищем объекты,

C>которые не выходят за границы метода.

Языком можно очень просто делать многие вещи. Вот, например, встраивать виртуальные вызовы и функциональные объекты. А на практике это почему-то оказывается очень сложным.

Вот почему ты бросил разработку своего GC для Моно? Не уж то задача оказалась слишком простая?

C>Но это в теории, а на практике получается огромная сложность в связке

C>кодогенератор+GC. Причем еще и осложненная необходимостью быстрой
C>работы.

"Еще"? Это как бы главная задача. Медленный или хриновый GC может сделать и ребенок. Вот в Обероне очень быстрый GC... пока дело не доходит до дела. А на практике он умирает при некотором объеме объектов, а казалось бы несколько более медленный дотнетный живет при значительно большем объеме объектов.

C>Кстати, escape-анализ уже, скорее, относится к JIT, а не к GC. Я об этом

C>уже с WolfHound'ом говорил.

Ты выше сказал правильную вещь. GC не отделим от JIT. Скажу больше подсистема анализа тоже. Это общий механизм и только будучи тесно интергрированными и спроектированными совместно можно достичь высокой скорости и малых объемов памяти.

В том то вся и сложность.

C>Ну и на ручное управление памятью не надо наезжать, оно живее всех живых


Оно — это этап в эволюции языков который должен был быть пройден еще десятки лет назад.
Заставлять управлять памятью вручную в 21-веке — это варварство. Так же как делать нетипобезопасные езяки.

>> Вот только боюсь, что это вся доступная информация по этому поводу .

C>Есть куча статей на Sun'е и вообще в Вэбе, но это надо ее целенаправлено
C>искать.

Дай ссылку хоть на одну интересную. А то я только треп на тему видел.

>> Как показали отлики на мою статью о ЖЦ даже куда более высокоуровневое

>> изложение интересно еденицам.
C>Я ее прочел

Тебе в ней наверно вообще интересного ничего не было. Ну, да что с того даже если ты вошел в эти еденицы?

>> Есть даже пара книг специально алгоритмам сборки мусора посвященных.

>> Но ты их даже не посмотришь.
C>Собственно, я знаю только одну хорошую книгу —
C>http://www.amazon.com/Garbage-Collection-Algorithms-Automatic-Management/dp/0471941484

У меня ссылок нет, но когда я интересовался этой темой то нашел целый сайт с офигительным описанием всех теоритических выладок.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[53]: Не пора ли нам перейти на D
От: EvilChild Ниоткуда  
Дата: 18.03.07 14:39
Оценка: +1
Здравствуйте, VladD2, Вы писали:

VD>Я не против статьи.

Вот и здорово, если она появится, то будет отличное дополнение к твоей.

VD>Я просто заранее предупреждаю о том, что это будет очень узкоспецифичная вещь.

Лучше когда статься есть, чем когда нет, а то вдруг Cyberax передумает
now playing: Quinoline Yellow — Garn Goy
Re[53]: Не пора ли нам перейти на D
От: Cyberax Марс  
Дата: 18.03.07 16:37
Оценка:
VladD2 wrote:
> C>К сожалению, не все так просто. *Хороших* статей про внутреннее
> C>описание работы тонких моментов в GC не так уж и много. Все что есть —
> C>это, в основном, пересказы про то как работают механизмы GC с поколениями.
> Не ты ли как то тут давал ссылку на сайт где описывались все возможные
> варинты GC вклюя инкрементальные и параллельные?
Ты имеешь в виду memorymanagement.org? Так там только по сути глоссарий
и хорошая библиография.

> C>Например, организации safepoint'ов уделено не так уж много статей. В

> C>твоей статье в про SSCLI используется самый простой и тупой подход —
> C>поллинг.
> Там описывается то что есть в Роторе. Собственно для понимания принципов
> этого более чем достаточно. А детали и есть детали.
Дьявол, как известно, как раз в деталях

> Все равно в основе базовая идея создания карт для некоторых участков кода.

Ну да, точно так же как и escape-анализ — это "просто" анализ CFG.

> В общем, теория и практика разные вещи. Именно по этому сейчас почти все

> исследования в области GC — это практические исследования или
> исселодования с большим объемом практического тестирования и сравнений.
Ну... Для теоретиков еще хватает места, например, в области
распределенных GC.

> Вот почему ты бросил разработку своего GC для Моно? Не уж то задача

> оказалась слишком простая?
Нет, просто потерял интерес к C# — увлекся Бустом. Хотя до сих пор
иногда хочется продолжить заниматься своим GC.

> C>Кстати, escape-анализ уже, скорее, относится к JIT, а не к GC. Я об этом

> C>уже с WolfHound'ом говорил.
> Ты выше сказал правильную вещь. GC не отделим от JIT. Скажу больше
> подсистема анализа тоже. Это общий механизм и только будучи тесно
> интергрированными и спроектированными совместно можно достичь высокой
> скорости и малых объемов памяти.
Мне лень повторяться, но... Для GC результат escape-анализа заключается
в том, что он просто считает некоторые объекты находящимися в
pinned-куче. Никакие алгоритмы самого GC (кроме начального построения
корней) не меняются от того, что некоторые объекты вдруг оказываются на
стеке.

> В том то вся и сложность.

GC можно разделить на две части: низкоуровневую и высокоуровневую.
Низкоуровневая часть занимается сбором корней GC, остановкой потоков,
управлением виртуальной памятью. Это, на самом деле, не так уж много
кода занимает (хотя этот код и получается очень сложным).
Высокоуровневая часть — это алгоритмы упаковки, прохода по объектам, и т.п.

Низкоуровневую и высокоуровневую части вполне можно разделить, что и
делают в нормальных реализациях (см. Sun JVM, например, там алгоритмы GC
плугабельны).

> C>Ну и на ручное управление памятью не надо наезжать, оно живее всех живых

> Оно — это этап в эволюции языков который должен был быть пройден еще
> десятки лет назад.
> Заставлять управлять памятью вручную в 21-веке — это варварство. Так же
> как делать нетипобезопасные езяки.
Ну что сделать, без этих языков не было бы C#

>> > Вот только боюсь, что это вся доступная информация по этому поводу .

> C>Есть куча статей на Sun'е и вообще в Вэбе, но это надо ее целенаправлено
> C>искать.
> Дай ссылку хоть на одну интересную. А то я только треп на тему видел.
См. ссылку про GC Points в предидущем письме, например.

Ну а так, смотри http://research.sun.com/techrep/

>> > Как показали отлики на мою статью о ЖЦ даже куда более высокоуровневое

>> > изложение интересно еденицам.
> C>Я ее прочел
> Тебе в ней наверно вообще интересного ничего не было. Ну, да что с того
> даже если ты вошел в эти еденицы?
Ну хоть люди будут знать как GC умеет собирать циклы объектов На моей
памяти этот вопрос дважды в форуме по Java задавали.
Posted via RSDN NNTP Server 2.1 beta
Sapienti sat!
Re[54]: Не пора ли нам перейти на D
От: VladD2 Российская Империя www.nemerle.org
Дата: 18.03.07 22:56
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Ну хоть люди будут знать как GC умеет собирать циклы объектов На моей

C>памяти этот вопрос дважды в форуме по Java задавали.

Да ничерта не изменится. Вот писал я писал статью ро GC в дотнете и что? Все фобии как были так и остались.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[54]: Не пора ли нам перейти на D
От: VladD2 Российская Империя www.nemerle.org
Дата: 18.03.07 22:56
Оценка:
Здравствуйте, Cyberax, Вы писали:

>> Дай ссылку хоть на одну интересную. А то я только треп на тему видел.

C>См. ссылку про GC Points в предидущем письме, например.

C>Ну а так, смотри http://research.sun.com/techrep/


Напомню, что ты говорил о ссылках на интересную информацию о escape-анализе. А в прошлом твоем письме ссылка на статью 1998-года.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re: Не пора ли нам перейти на D
От: x-code  
Дата: 19.03.07 09:35
Оценка:
Здравствуйте, Disappear, Вы писали:

D>Долой прошлое, господа!

D>Хватит уже ходить по граблям обратной совместимости с другими граблями.

D>Не пора ли нам программировать на языке D (http://www.digitalmars.com/d/) ?

D>Разве мы не заслужили

думаю что разработчикам D стоит затратить некоторое время и написать плагин для студии, который бы позволял как встраивать D-шные файлы в существущие С++ные проекты, так и создавать целиком D-шные проекты.
Причем первое важнее второго: я бы например мог написать сначала пару классов на Ди (естественно, доступных для С++-программы), дальше — например библиотеку, а затем уже и перейти к проектам.

ИМХО, после этого количество пользователей D увеличилось бы в РАЗЫ.
как думаете?
Re[55]: Не пора ли нам перейти на D
От: Cyberax Марс  
Дата: 19.03.07 09:39
Оценка:
Здравствуйте, VladD2, Вы писали:

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

C>>Ну а так, смотри http://research.sun.com/techrep/
VD>Напомню, что ты говорил о ссылках на интересную информацию о escape-анализе. А в прошлом твоем письме ссылка на статью 1998-года.
Я говорил про статьи о GC в общем.

Ну а про escape analysis:
http://portal.acm.org/citation.cfm?id=1064996&amp;dl=ACM&amp;coll=&amp;CFID=15151515&amp;CFTOKEN=6184618

Ну и еще можно поискать, мне попадалась еще пара интересных статей.
Sapienti sat!
Re[2]: Не пора ли нам перейти на D
От: Disappear  
Дата: 19.03.07 10:02
Оценка:
Здравствуйте, x-code, Вы писали:

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


XC>думаю что разработчикам D стоит затратить некоторое время и написать плагин для студии, который бы позволял как встраивать D-шные файлы в существущие С++ные проекты, так и создавать целиком D-шные проекты.


XC>Причем первое важнее второго: я бы например мог написать сначала пару классов на Ди (естественно, доступных для С++-программы), дальше — например библиотеку, а затем уже и перейти к проектам.

Вот тут есть одна проблемка, правда решаемая. У D есть бинарная совместимость для C, но нет таковой для C++ в виду большой сложности последней. Но никто не мешает написать некую библиотеку, которая позволяла бы оперировать с классами D из С++, и наоборот.

XC>ИМХО, после этого количество пользователей D увеличилось бы в РАЗЫ.

XC>как думаете?

Думаю, что это очень разумное предложение,
еще нужно не забыть о том, что этот плагин должен позволять дебажиться в D.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.