LINUX.ORG.RU

Вышел Mono 2.6.7

 ,


0

0

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

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

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

★★★★★

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

> И да, как это костыль smart_ptr попал в стандарт? Т.е. был в бусте - фу, костыль, перенесли в стандарт - опа, уже годное средство?

я тебе русским я зыком написал - там есть годные библиотеки, но немного

найти место, где безымянный студент завёл два указателя


ССЗБ

Вопрос: что при этом произойдёт в С++?


дважды ССЗБ - есть же at

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

>> найти место, где безымянный студент завёл два указателя

ССЗБ


Ну, как я и сказал - программист, живущий в идеальном мире, где студентов нет, индусов нет, legacy кода нет, ошибок никто не допускает, независимо от квалификации (и вообще приходят на проект сразу гурами, как любой грамотный студент, простите за оксюморон), документацию все пишут, правильно понимают, и ей следуют.

В таком мире использование C/C++ - безопасно. Как только я найду _такой_ мир, тут же туда переселюсь.

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

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

>GC быстрее чем ручная сборка памяти
Бред.

- вручную ты вынужден сразу удалять какую либо большую структуру данных,

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

GC ее соберет по частям, когда на это будет время.

В случаях если часто содаются-удаляются объекты пишется простейший менеджер памяти и это ВСЕГДА работает быстрее чем GC, которому нужно подсчитывать ссыки, вызывать деструкторы/finalize, etc.

Вы видимо всегда ползовались менеджером памяти ОС.

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

> Осознания того факта, что C/C++ - языки, которые крадут у заказчика деньги и время, за исключением тех случаев, когда их приходится использоваться по технологическим причинам.

если нанимать студентов - то да, так и есть

Как из того, что я говорю о необходимости энтерпрайза и связанных с ним технологий,

следует то, что я не вижу ничего дальше? В какой логике?

посмотри на этот список программ( там в каждом разделе их много ):

http://packages.ubuntu.com/ru/lucid/

теперь подумай - какой процент от них использует Java, заодно можешь пойти на rutracker - посмотреть на автокады, фотожопы и пр., и также посчитай сколько там всего на Java, а потом подумай - это наверное я такой умный, а все кто это пишут - просто дураки

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

>крадут
Ну да, крадут... Но, например, вменяемый плагин под Аbоbе Acrabat не настрогаешь - SDK предоставляет грубо говоря лишь С/API. И, начиная от этого момента, можешь плясать как хочешь с предсказуемым выбором ЯП реализации плагина. :) И это не единичный пример.
Точно так же, если у тебя солидный кусок слеплен под ror, то есть очень большая доля рации продолжать пилить именно на руби, а не устраивать пляску с обертками-обвязками под python или tcl какой.
imho

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

> где студентов нет

почему - есть студенты, только зачем их сразу кидать на баррикады? есть мелкие некритичные задачи, до которых свои руки не доходят - а студенты пусть учатся

индусов нет


индусы на чем угодно напишут ерунду

legacy кода нет


это ж вы плакались про него - я наоборот сказал, что ничего страшного в нем нет

ошибок никто не допускает, независимо от квалификации (и вообще приходят на проект сразу гурами, как любой грамотный студент, простите за оксюморон),


все делают ошибки на любом языке

документацию все пишут, правильно понимают, и ей следуют.


а вот за этим я слежу внимательно и пинаю, если кто не пишет :)

где не надо 3 месяца корячится из-за одной единственной опечатки


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

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

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

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

> SDK предоставляет грубо говоря лишь С/API

Tсли задача - «написать плагин на C/API» - выбор очевиден. Любители рассматривать частные случае мне не понятны, что этим сказать-то хотел? Задач написать онлайн-магазин или фреймворк для доступа к железу «на C++» я что-то не видел. Обычно в требованиях стоят сроки, функционал, и т.п.

Да и C/API далеко не всегда исключает плагины на C#, на нём вон даже COM-объекты можно писать, не говоря уже о простом interop.

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

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

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

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

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

конечно. а еще можно вызывать API напрямую. но ведь никто не заставляет. а наличие возможности - хорошо. иногда в критичных к производительности местах unsafe очень спасает. что в итоге делает производительность приложения неуступающей C++, при более быстрой разработке.

Уважаемые монофилы, вы хотя б промеж себя определитесь насчет того, шустр ГЦ или не очень. А то странно читать в соседних постах такое.

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

>настоящие мужики пишут на С или функциональщине
Вы бы уж хотябы почитали по теме, прежде чем писать.

F# язык ФП. его реализация открыта и fsc(F Sharp Compiler) уже вполне работоспособен в составе моно.

Да и C# c версии 3 поддерживает closures, lambda expressions, LINQ и другие элементы которые позволяют писать в стиле ФП.

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

>я, например, в чужих проектах ошибки достаточно быстро нахожу и патчи шлю( а я совсем не гуру ), а вы в своем не могли разобраться

Ошибки ошибкам рознь. Некоторые timing issues годами вон поймать пытаются

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

> Вы бы уж хотябы почитали по теме, прежде чем писать.

F# язык ФП


C# != F#, не?

Да и C# c версии 3


я за ним не слежу, ну и в том же С++ тоже появились «closures, lambda expressions» - от этого он не стал функциональным

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

> почему - есть студенты, только зачем их сразу кидать на баррикады? есть мелкие некритичные задачи

Написать функцию EncodeBase64 - критичная задача или нет? Как ты собираешь определять критичность? Не будешь пускать код не-гуру в продакшн вообще?

все делают ошибки на любом языке


Да ну? Так значит не только студенты допускают ошибки? Блин, получается вообще _никому_ нельзя работать над продакшн кодом на С++. Или, я понял, С++ годится только для мелких некритичных задач?

ничего страшного в [legacy коде] нет


Совсем нет? Legacy код написан тоже гуру, без одной ошибки, подобной той, что я описал? Ты зуб даёшь, можно спокойно юзать? Он мою память не затрёт? Ты лично контролировал, что legacy код написан не студентами/индусами?

вы в своем не могли разобраться


Увы, не смог, 3 месяца провозюкался. Вот и спрашиваю тебя второй раз - как же вышеприведённую ошибку обнаружить? Расскажи! И главное, как за приемлемое хотя бы понять, что происходит, ведь симптомы столько случайны?

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

> Написать функцию EncodeBase64 - критичная задача или нет?

http://apr.apache.org/

пользуйтесь

Блин, получается вообще _никому_ нельзя работать над продакшн кодом на С++. Или, я понял, С++ годится только для мелких некритичных задач?


да - сразу бить линейкой по пальцам

Ты зуб даёшь, можно спокойно юзать?


зачем юзать - поддерживать у клиентов, не больше

как же вышеприведённую ошибку обнаружить?


я тебе уже говорил - возьми тот же AQTime, да и за 3 месяца можно было давно заменить [] на at()

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

> да - сразу бить линейкой по пальцам

хочу уточнить - это для enterprise ес-но

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

> А C# - не костылен. Зачем же использовать костыльный C++, за исключением редких случаев по нужде?

скорость же - достаочно посмотреть во что превратилась VC2010, чтоб понять оно тормозит даже у M$

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

А вот это уже с твоей стороны просто упоротый ответ.

На пример задачи, поручаемой студентам, почему-то предлагаешь взять какой-то там код, как будто я спрашивал, где найти реализацию base64.

Упорото полагаешь, что существуют программисты, которые не допускают багов в коде. Наверное, ты себя считаешь таким.

Упорото не понимаешь, что поддержка legacy кода и означает его юзание. Ибо в мире дохера С++ кода, который стоил заказчику сотни человеко-лет работы, и его приходится юзать в существующих системах.

Наконец, до тебя так и не дошло, хотя я даже картинку нарисовал, что 3 месяца я искал, в чём причина падений, т.к., очевидно, про [] и где оно находится я не знал. Узнал только в конце - и тогда-то, конечно, пофиксил за час. До этого три месяца ушло на поиск, кто и где перезаписывает память, ибо С++ об этом не сообщает (прелестный язык, не так ли), а как узнать по случайным крэшам и разнообразным ошибкам в случайный момент времени (может час пройти с момента порчи памяти) строчку, где вместо p написано pp, ты мне почему-то до сих пор не рассказал. Что память перезаписывается - понятно было, в общем-то, сразу, вот только как найти в С++ - кем и где? Ну-ка, поделись?

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

>До этого три месяца ушло на поиск, кто и где перезаписывает память

:) А мне в своё время повезло - при переполнении буфера в одном месте прошивка падала сразу.

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

> На пример задачи, поручаемой студентам, почему-то предлагаешь взять какой-то там код, как будто я спрашивал, где найти реализацию base64.

ты предложил глупую задачу

Упорото полагаешь, что существуют программисты, которые не допускают багов в коде. Наверное, ты себя считаешь таким.


ваши фантазии

Упорото не понимаешь, что поддержка legacy кода и означает его юзание


очередные фантазии

т.к., очевидно, про [] и где оно находится я не знал


а про то что [] вообще лучше не использовать, если не хочешь потом искать сам такие места - ты не знал? это сразу написано в документации к std::vector, а потом конечно язык виноват, что вы ничего не читаете

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

Речь вообще не про vector, а про char*p, и код не мой, а legacy, но это всё мои глупые фантазии, которые стоили мне 3 месяца нервов, а заказчику 3 месяца падучего сервиса. Но это всё глупая задача, ведь в идеальном мире, в котором ahonimous кропает свой личный код, такого конечно не бывает.

Но ты так и не рассказал, как же всё-таки словить такую ошибку. Всё-таки невозможно? Значит, придётся полагаться на то, что индусы и студенты не юзают char*p и читают документацию по std::vector, а также никто не использует чистый C? Неудивительно, что люди с реальной оценой рисков выбирают C#.

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

Возможно, зависит от железа. У меня и то и то - быстрее.

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

> ведь в идеальном мире, в котором ahonimous кропает свой личный код, такого конечно не бывает.

в моем идеальном мире существует много программ на С/С++, которые работают - да, сейчас вот в одной из них сообщение тебе пишу

Но ты так и не рассказал, как же всё-таки словить такую ошибку. Всё-таки невозможно?


я уже несколько раз писал - static analyse, который как раз наругается на все места, где нет проверки индекса, или AQTime - который умеет отслеживать выделенные области памяти + обращение к ним, и который тебе сразу скажет, что вот тут вылезли за пределы

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

> много программ на С/С++, которые работают

Так и тот сервис заработал. Просто на это ушло на 3 месяца больше, чем было бы на C#.

как раз наругается на все места, где нет проверки индекса


Подсказка: legacy code. It's over 9000. А также это C, там нету std::vector и прочей хрени.

вылезли за пределы


За пределы чего? 0 корректно записался в _другой_ массив. Корректно. По нормальному индексу. AQTime умеет отслеживать, что *(p + x) привёл к записи в *(pp + y)?

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

> А также это C, там нету std::vector и прочей хрени.

ну так оно и на C наругается

корректно записался в _другой_ массив. Корректно. По нормальному индексу. AQTime умеет отслеживать, что *(p + x) привёл к записи в *(pp + y)?


если p + x > чем было выделено для p, то да, я ж написал - он запоминает выделенные блоки памяти( благодаря той самой ужасной перегрузке malloc/free ), и когда есть указатель + смещение - она по указателю найдет блок( даже если он не указывает на его начало ), а по смещению - проверит валидность, это не сложно( хотя и будет работать в таком режиме раз в 5-10 медленней - но тут по сути одного раза хватит )

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

Да нету никакого «указатель + смещение».

pp = p + length;
*pp = 5; <- где здесь указатель + смещение? Здесь один только указатель. Только вот вместо *p написали *pp.

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

> Да нету никакого «указатель + смещение».

pp = p + length

Только вот вместо *p написали *pp.



ну вот что-то есть похожее:
http://williambader.com/bounds/example.html

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

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

> похожее

Оно сработает, если кривой указатель попал на валидную область памяти?

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


Аминь.

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

где ж вас делают, таких безграмотных убогих недоумков? на mlton посмотри хотя бы, лопух.

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

Неудивительно, что люди с реальной оценой рисков выбирают C#.

Запусти мне C# на сигнальном процессоре! Никак? Вот ты и узнал что C/C++ для DSP/микроконтроллеров безальтернативен. Напиши мне драйвер на C#! Опять никак?

Я не спорю что C#/Java это языки следующего поколения, решающие все проблемы и недостатки предшественников + кроссплатформенный байткод и бинарник - так это вообще мечта.

Но не всегда реально применять C#/Java. Сори если понимаешь это, весь тред не читал...

I-Love-Microsoft ★★★★★
()
Ответ на: комментарий от I-Love-Microsoft

> Сори если понимаешь это, весь тред не читал...

Ну тогда прощаю ;-)

Запусти мне C# на сигнальном процессоре


А почему бы и нет, глядишь, сделают процессор с нативным выполнением .NET кода, лепота!

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

>Потому что место silverlight-а - у параши в intranet-ах, я бы сказал. Ну, тот самый ынтырпрайз.
Энтерпрайз - это гетерогенная среда.
И Маки и Линуксы и Соларисы на десктопах, так что силверлайт даже в энтерпрайзе не идёт.

Года 3 назад проект внедрения Силверлайта для внутреннего портала Canada Broadcasting Corporation завершился на стадии тестирования, так как оказалось что мунлайт=Силверлайт очень старой версии а Маковская версия тогда была весьма корява.

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

Ну ладно, не enterprise, просто бизнес. Скажем, система для учёта чего-то там на небольшом/среднем предприятии. Вся муть что раньше писалась на ASP.NET индусами.

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

>> F# язык ФП

C# != F#, не?

Вы это к чему?
Мы говорим о моно а F# в моно работает.

я за ним не слежу,

Но спорите, что есть моветон.

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

> Вы это к чему?

Мы говорим о моно а F# в моно работает.


если вы внимательно читали( а вы читали судя по всему невнимательно ) - я писал про C#

Но спорите, что есть моветон.


невозможно уследить за всем, C# ведь не стал ФЯП - как я и полагал, если б вы вдруг дали ссылку на такой факт - это было бы дело, а так ваши комментарии ни о чем

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

>Вся муть что раньше писалась на ASP.NET индусами.
Я вообщето о Силверлайте писал.

.Net достаточно популярен в энтерпрайзе.

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

>я писал про C#
Вы писали о С и ФП противопоставля их одному из языков mono. Н что я указал, что принципы ФП реализовано как в C# так и в другом ЯП для этой платформы(mono)

C# ведь не стал ФЯП

Это смешанный объектно-функциональный ЯП. С версии 4 он вполне ФП

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

Поддерживаю, F# и C# неплохо совмещаются.

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

>достаочно посмотреть во что превратилась VC2010, чтоб понять оно тормозит даже у M$
4.2 По тормозам eclipse никто еще не обогнал. VS работает по сравнению с ним изумительно, особенно учитывая количество фич, и даже со всех сторон обмазанная плагинами.

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

> 4.2 По тормозам eclipse никто еще не обогнал. VS работает по сравнению с ним изумительно, особенно учитывая количество фич, и даже со всех сторон обмазанная плагинами.

я eclipse не полльзуюсь - не скажу, а вот QtCreator просто реактивен по сравнению с MSVC

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

> По сравнению с VS и Eclipse QtCreator - блокнот.

VS без VA сам по по себе блокнот, так как их intellisence как был тормозным говном, так говном и остался

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

>VS работает по сравнению с ним изумительно, особенно учитывая количество фич
Вот как раз по количеству фич VS до Эклипса очень далеко.
В VS даже рефакторинга нормального нету. А скорость работы их сорсконтрола вообще злит.
И по моему субъективному мнению VS ничеть не быстрее эклипса а на многих операциях(сорсконтрол к примеру) в разы медленнее.

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

Для дибилушек есть в glibc backtrace и ещё libsigsegv. Уж сколько я так говнокода на С++ половил пером не описать, а тут четверть года на муть. Небось и премию получил?

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

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