LINUX.ORG.RU

Вышел Mono 2.6.7

 ,


0

0

Основные изменения:

  • Теперь mono включает в себя MVC2
  • Добавлен WCF — как клиент, так и сервер
  • Добавлена поддержка LLVM для улучшения производительности
  • Новый отладчик, который интегрирован в MonoDevelop 2.2
  • Добавлена поддержка модели безопасности CoreCLR
  • Множество мелких исправлений

>>> Подробности

★★★★★

Проверено: JB ()
Последнее исправление: MuZHiK-2 (всего исправлений: 1)
Ответ на: комментарий от farafonoff

> самые страшные баги - креши, остальные я вообще уже за баги не считаю :)

самые страшные баги - это когда данные портятся, а остальное раз в полгода можно пережить, да и особо падучих программ на С/С++ не так много - и они сразу отсекаются при использовании( как то КДЕ 4 :) )

Надо ставить не дистрибутивную версию, а свн


это в каком проекте не принимают баги с дистрибутивной версией? ( если конечно там не доисторическая версия )

ahonimous
()
Ответ на: комментарий от farafonoff

> Тесты подразумевают воспроизводимость баги. Сложно писать тест для невоспроизводимой баги.

у меня тесты покрывают функциональность отдельных частей библиотеки/программы, тесты для каждого бага - отдельно

ahonimous
()
Ответ на: комментарий от grim

>Ну, я же не написал ML или OCaml

Да нет, именно F# :) MS к его созданию отношения не имеет. Это доморощенный инициативный проект, который был пригрет сперва MS Research, а потом уже стал и собственностью MS.

KRoN73 ★★★★★
()
Ответ на: комментарий от ahonimous

Ну я и говорю - тесты - для воспроизводимого поведения и воспроизводимых багов. Рандомные краши фиг покроешь тестами.

farafonoff ★★
()
Ответ на: комментарий от farafonoff

> Они там все просят проверить на svn

А если дистрибутивная версия - debian stable, то ответ: ни в одном.


ну может - я «живу» на убунту 10.04/10.10, у меня все баги принимают :)

ahonimous
()
Ответ на: комментарий от ahonimous

Убунта практически и есть svn :) сам на нее недавно переполз, достало очередной раз дебиан до анстейбла обновлять

farafonoff ★★
()
Ответ на: комментарий от ahonimous

Все равно однократный запуск программы, да еще такой странной - не хорошо. Синтетические тесты тоже надо уметь писать.

farafonoff ★★
()
Ответ на: комментарий от farafonoff

>Все равно однократный запуск программы, да еще такой странной - не хорошо. Синтетические тесты тоже надо уметь писать.

Тест синтетический (см - "...неполноту тестинга - смотрел, что душеньке ближе"), прицел на мои и более ничьи задачи, выполнялся на двух копиях одной виртуалки ; цель - «на глазок» оценить тренд роста/падения (ну и набросить - куда же без того :) - 5 страниц треда, и ни одной конкретной циферки, уровень обсуждения как бы намекает и просит, просит и намекает) вычислительной производительности.
Вывод в посте - пример однократного запуска, реально - немного погонял одну версию от моно и одну - от дотнета для того, чтобы убедиться, что разброс - не более чем в секунду. В многократном запуске и построении статистики не вижу никакого смысла в контексте выкладывания на ненаучный форум, в общем - был не мотивирован :)

yaws
()
Ответ на: комментарий от farafonoff

А смысл?..
Судя по всему дотнетовские (да и монодотнете) регекспы сделаны на самом дотнете, без привлечения сторонних DLL.
И разница в скорости между, скажем нетом2 и 2,6,7, выполнения, видимо, кроется в более корявом коде моно... А раз код корявый в одной части (регекспы), то нет и гарантий некорявочти кода в др частях платформы...
imho

yaws
()
Ответ на: комментарий от alx_me

> Понабежало школьников. Быстро время идёт. Уже не модно с чем-либо досконально разбираться. Если «Я» такой весь гениальный не постиг тонкостей языка за неделю, значит язык плохой! Вот так все в ад и попадают, с такими вот за компанию. 95

По опыту. «C++ - говно» начинают орать люди, постигшие его тонкости

cap838383
()
Ответ на: комментарий от KRoN73

Да знаю я про циклические ссылки и маскировочные биты :)

Просто остаток трепа с анонимусом порезали

yoghurt ★★★★★
()
Ответ на: комментарий от cap838383

+1.

Ко мне сие просветление пришло сразу после прочтения Александреску.

yoghurt ★★★★★
()
Ответ на: комментарий от cap838383

>По опыту. «C++ - говно» начинают орать люди, постигшие его тонкости
По опыту, «Технология - Говно!» начинают вопить изучающие другую технологию, но не понявшие, что в той другой технологии тоже есть проблемы.

Потом начинают вопить «Говно!» про другую технологию.

Так и живут всю жизнь в говне.

grim ★★☆☆
()
Ответ на: комментарий от grim

> Потом начинают вопить «Говно!» про другую технологию.

Прогресс же ?

cap838383
()
Ответ на: комментарий от grim

> А как на Силверлайте можно заменить сайт написанный на asp.net?

Неужели и достук к базе и бизнес логику в браузере крутят?


Э, да ты вообще не в курсе, что такое Silverlight, о чём вообще с тобой разговаривать. Крутят точно так же, как и на флэше (Flex), данные - через веб-сервисы, например. Бизнес логику можно и на клиенте, там же .Net.

Silverlight - это не только красивый (в кавычках болдом) UI.

.Net не входит. т.е. когда вы устанавливаете .Net


При установке .Net много чего не появляется. То, что у Silverlight свой рантайм, не умаляет того факта, что под него компании могут юзать практически все свои .NET библиотеки/наработки. А теперь ещё и всякий древние COM-объекты, MSO, и прочий шлак. Чем он и лучше многих других технологий, для этих компаний, конечно.

queen3 ★★★★★
()
Ответ на: комментарий от alx_me

> GC

Режим ламера


На смолтоке пишут тока ламеры, гыгы.

queen3 ★★★★★
()
Ответ на: комментарий от farafonoff

> Совет тебе: не называй переменные p и pp

Спасибо, Кэп. Что делать с не моим кодом, который уже используется и благодаря продаже которого имеет деньги компания, нанявшая меня сделать клиента для старой версии?

Очень рад за тех, кто живёт в идеальном мире, где не существует тонн говнокода, который нужно поддерживать. Именно в этом идеальном мире программы, переписанные с нуля (типа Нетскейпа) rule the world, а не безнадёжно отстают от конкурентов.

queen3 ★★★★★
()
Ответ на: комментарий от grim

Visual Assist - он в основном только для C++ полезен.

queen3 ★★★★★
()
Ответ на: комментарий от ahonimous

Кстати, вот у меня Evolution падает, раз в несколько дней, причём тоже рандомно. Как мне этот баг словить и зарепортить?

queen3 ★★★★★
()
Ответ на: комментарий от ahonimous

> C# != F#, не?

Тема про моно, а не C#

anonymous
()
Ответ на: комментарий от Macil

> На любом ОО языке можно писать в стиле ФП. ФП не есть свойство языка.

Не любом, а только на том, где есть GC. Иначе - ужасные костыли в стиле FC++. Нельзя копировать иммутабельные структуры без внешнего GC, ручная сборка мусора или дебильные смартпоинтеры испортят весь кайф от чистого ФП.

anonymous
()
Ответ на: комментарий от ahonimous

> насколько я знаю, пока просто не получается написать быстрый GC, а медленный не нужен - т.к. проще взять ту же Java, так бы GC уже давно включили в C++0x

Невозможно вообще написать быстрый GC для языков с арифметикой указателей и подобным безобразием. Нельзя сделать быстрый GC для окружения, где допустимы не-managed указатели. Потому как не будет компактификации, не будет нескольких поколений и stop&copy. Будет только mark&sweep или аналоги, а они работают хорошо и быстро только в сочетании с другими методами.

anonymous
()
Ответ на: комментарий от yoghurt

> Да знаю я про циклические ссылки и маскировочные биты :)

Не знаешь, иначе не писал бы чушь про смартпоинтеры.

Ты и про компактифицирующий stop and copy не знаешь, и про прерываемый многопоточный mark and sweep, и про hard real time GC ничего не знаешь.

Вообще ничего не знаешь. Но лезешь рассуждать. А это гнило.

anonymous
()
Ответ на: комментарий от farafonoff

> Удачи в отладке рандомбага бэктрейсом.

Сотни их отловил. И тут мне удача не нужна, головы хватает. Я тут не как виртуальный программист в вакууме, у нас реально говнокод замикшеный прямо в известный всем OPAL/PWLIB, падал - что ужос. Версию сменить нельзя - говнокод рассыпется. Так что багов 10 в pwlib по-поводу thread я нашёл. А сколько из-за говнокода - жуть. Вот на ядре 2.2 было да - он дампы давал битые а после nptl лафа началась. Так что не надо иронии. Я ещё раз говорю C/C++ используют системный метод отладки(методы самой ОС). Для всяких недоскриптовых и полускриптовых языков это конечно не годится - поэтому у них свои методы.

alx_me ★★☆
()
Ответ на: комментарий от yaws

:-* ути-пути какой «не эксперт» и «не тролль» вылез. Я простите интересуюсь а на ко ляд вы тут пукнули своим исследованием если оно только вам интересно? У вас эксгибиционизм, простите? Выходит, по вашей же логике, мы с вами одного поля ягоды, то есть вы меня не лучше. Так что от Вас, аналогично, не жду ничего серъёзного. Как принято в таких случаях напоминаю: «Я говно и ты говно, я недавно ты давно.»

А вообще комплексы дело опасное - можно и слюной изойти до полного обезвоживания.

alx_me ★★☆
()
Ответ на: комментарий от grim

>Думал взрастили в MS Research.

Ну да, взрастили - там. Но зачали не в MS, а подобрали котёнка на улице :D Даже не котёнка, а уже вполне жизнеспособного кота :D

KRoN73 ★★★★★
()

Сравнивать платформы по сферическим бенчмаркам в вакууме могут только недалёкие, тщетные люди.

vasilenko ★★
()
Ответ на: комментарий от alx_me

А кого волнуют попытки что-то сделать в стандарте сомни тельной живости? Как в KDE это будет работать --- разбудите, а пока они текут.

sv75 ★★★★★
()
Ответ на: комментарий от sv75

:-) яж вышее про эксгибиционизм писал.

Шучу, просто я считаю, что все инструменты есть и трудности преодолимы, просто наш век это век неглубоких инкубаторских людей. И считаю что такая система становится всё менее устойчивой. И что хотелось бы чтобы студенческий код преаращался всё же в код профессиональный и понятия о системе углублялись бы не под действиями маркетологической чешуи об «интерпрайзе», а по внутренней крастоте инженерного решения. Без выбумывания каждый год нового «но теперь уже точно ultimate решения где даже последняя домохозяйка сможет».

alx_me ★★☆
()
Ответ на: комментарий от alx_me

>если оно только вам интересно?
Всем не угодить, c'est la vie.

А вообще комплексы дело опасное - можно и слюной изойти до полного обезвоживания.

Так постарайтесь же следовать собственному совету. Ути-пути :)

yaws
()
Ответ на: комментарий от alx_me

Нахрена эта красота в бизнесе? Там изначально никакой красоты нет. С этим тебе в авионику, ВПК, академию и т.д.

sv75 ★★★★★
()
Ответ на: комментарий от sv75

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

alx_me ★★☆
()
Ответ на: комментарий от sv75

Quick and durty это ваш стиль? Тут есть любители этого дела в концентрированном виде. Прям так и говорят поддерживать я это и не собираюсь. Я д'Артяньян собрал, мол, свои сливки, а вы тупари трахайтесь. Так это почему такие «сущности» есть и неплохо преуспевают? Потому что манагер/управленец это выдумка и фикция. Их учат всему от управления АЭС до самолётостроения. Только оценить они качество не могут, квалификации нет, зато получают. Это и есть кризис системы. Менеджер по персоналу я вааще ухаха. :-D. Театр и клоуны. И люди всеръёз в это всё верят.

alx_me ★★☆
()
Ответ на: комментарий от alx_me

Так посоветуй, как специалист, как отловить

pp = p + 150;
*pp = 0;

если pp при этом указывает на вполне себе валидные данные программы? И она не валится, а просто через какое-то время начинает дурить с результатами, и падает разве что потому что не ожидала испорченных данных, но падает не в момент порчи памяти, ибо никакой «порчи» не было?

queen3 ★★★★★
()
Ответ на: комментарий от anonymous

Поймает даже в том случае, если между
pp = p + 150;
и
*p = 0;
находится 30 строк кода, включащего циклы прохода по строке?

queen3 ★★★★★
()
Ответ на: комментарий от anonymous

Кстати статические анализаторы - это такой мегакостыль, что пипец. Вместо того чтобы избавиться от потенциально опасных вещей типа указателей, давайте навернём вокруг хрень, выдающую 100 варнингов на каждый чих. Так, чтобы на их удаление ушло больше времени, чем на собственно разработку программы. А если их не фиксить постоянно, то потом в сотне-другой варнингов уже никогда не найдёшь какой бы то ни было баг.

Это не только к С++, к C# тоже относится, в виде FxCop-ов разных. В Питоне тоже такое добро имеется. Типа бюрократии, когда каждый оператор обложен 10-ю предписаниями, как можно, и как нельзя. Да сделайте нормально саму систему, чтобы «неправильно» невозможно было написать! Нет, хотим оставить возможность писать криво, поэтому желающие избежать ошибок - вот вам десятитомник правил, как обойти кривизну нашей системы, которую мы оставили для продвинутых пользователей, желающих выстрелить себе в ногу.

Во, http://www.coverity.com/products/static-analysis.html на скриншоте демонстрация чего? Правильно, как программист на Си должен интересоваться деталями, где кто что распределяет. А тут же меня убеждали, что на С/C++ очень просто на каждый new/malloc делать delete/free. Спрашивается - зачем тогда статический анализатор?

queen3 ★★★★★
()
Ответ на: комментарий от queen3

> Кстати статические анализаторы - это такой мегакостыль, что пипец. Вместо того чтобы избавиться от потенциально опасных вещей типа указателей, давайте навернём вокруг хрень, выдающую 100 варнингов на каждый чих.

Да да, именно по этой причине самые развитые и мощные статические анализаторы - как раз для совершенно безопасных и чистых языков.

А если их не фиксить постоянно, то потом в сотне-другой варнингов уже никогда не найдёшь какой бы то ни было баг.

У coverity не так уж и много false positives.

в виде FxCop-ов разных

Ну сравнил блин. Это не анализатор, это хрень.

Да сделайте нормально саму систему, чтобы «неправильно» невозможно было написать!

Ну вперед, пиши на Agda или Axiom. Много напишешь, наверняка.

anonymous
()
Ответ на: комментарий от anonymous

Как это какая разница?

char *p = «1234», *pp = p;
while (*(pp = calc_next_pos(pp)))
*pp = 'a';
*pp = '1'; // должно быть *p

Как здесь статический анализатор определит, что я случайно написал *pp вместо *p, calc_next_pos() случайно сделало +150, попало на валидную область памяти с нулями - только другую область - и я там вместо 0 записал '1'? Это совершенно валидный код, и я вполне мог хотеть использовать *pp, а не *p.

Как статический анализатор определит, что будет с pp после 100 известных только в рантайме преобразований?
char *pp = p
while (true) { 100 раз расчёты вида if (some_cond(pp)) *pp++ = x; }

queen3 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.