LINUX.ORG.RU

Mono 1.9 Released

 ,


0

0

Сегодня стал доступен для скачивания новый стабильный релиз свободной реализации .NET Framework - Mono 1.9. Это последний релиз ветки 1.х, перед версией 2.0.

Изменения:

  • Полная поддержка generics на уровне VM.
  • Поддержка C# 3.0 по умолчанию.
  • Включена работа с Silverlight по умолчанию.
  • Исправления в подсистеме рефлексии (обязательно обновите Gtk#!).
  • AOT теперь работает и для ARM-процессоров.
  • Добавлена утилита для визуального сравнения API библиотек (с целью выявления регрессий) - GuiCompare.
  • Windows.Forms использует родной бэкенд для Mac OS X (без X11).
  • Оптимизация скорости System.Web.
  • Новая система маппинга конфигураций ASP.NET, которая призвана обеспечить беспроблемный перенос ASP.NET сайтов под Mono.
  • Исправлена кучка ошибок.
Ждем 2.0!

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

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

> но я сомневаюсь что на питоне получилось бы проще/быстрее.

Господи, как достали придурки!

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

> Господи, как достали придурки!

И всё? Так нет ничего проще - отойди от зеркала...

yyk ★★★★★
()

Внезапно обнаружил, что в этом релизе уже AOT для 2.0 сборок поддерживается. Это хорошо!

А все, кто гонит на .NET - неграмотные красноглазые сосунки. Презираю!

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

> Поправь меня, если я ошибаюсь, но ОЗУ появилось раньше диска :D А потом появилась виртуальная память.

Вначале была такая память, *одновременно* ОЗУ и диск -- матрица из магнитных колечек. У одного моего знакомого сохранилась :-)

> По-любому, ОЗУ нужно использовать в полной мере.

Это точно. И даже можно компилятор писать по принципу "все исходники и инклюды засосал в ОЗУ, а потом..."

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

>А все, кто гонит на .NET - неграмотные красноглазые сосунки. Презираю!

Я презираю всех кто гонит не по делу на жабу и на дотнет!

P.S. Красноглазики достали!

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

> Для всех остальных софтин жаба потребляет столько памяти, сколько требуется по коду

Гы-гы-гы. В С++ для указателя на функцию требуется 4 байта (ну может 8 если на метод класса), а в яве *на каждый* такой указатель приходится делать анонимный класс, который еще на диске занимает 500 байт, а сколько в памяти -- так это вообще одному сану известно :-)

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

>Гы-гы-гы. В С++ для указателя на функцию требуется 4 байта (ну может 8 если на метод класса), а в яве *на каждый* такой указатель приходится делать анонимный класс, который еще на диске занимает 500 байт, а сколько в памяти -- так это вообще одному сану известно :-)

Придурок! На экземпляр не создается никаких ананонимных классов, это они создаются когда создается аномный класс по в стиле "аля делегат", а не КАЖДЫЙ экземпляр.

File f = new File("aaaaa"); //Здесь никакой класс не создается
//здесь создается экземпляр


//А вот здесь создается ананимный класс, и на него таки да, тратится 3кб на метаданные.
ActionListener al = new ActionListener()
{
public void actionPerformed()
{
}
};

P.S. Бл*ть! Как же за*бали красноглазики!


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

>> Поправь меня, если я ошибаюсь, но ОЗУ появилось раньше диска :D А потом появилась виртуальная память.

> Вначале была такая память, *одновременно* ОЗУ и диск -- матрица из магнитных колечек

ОЗУ на ферритах была не «вначале» :) И никогда не была «диском». Откуда там диски, когда это были кубы? :D

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

>Гы-гы-гы. В С++ для указателя на функцию требуется 4 байта (ну может 8 если на метод класса), а в яве *на каждый* такой указатель приходится делать анонимный класс, который еще на диске занимает 500 байт, а сколько в памяти -- так это вообще одному сану известно :-)

Какая, я не побоюсь этого слова, ВЕРШИНА человеческой мысли!

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

MyClass c1 = new MyClass(); MyClass c2 = new MyClass(); c1 = c2;

Ведь c1 и c2, по твоей логике (а она разумеется безупречна), принадлежат к разным анонимным классам...

P.S. Три года пишу жабе... но ты просто открыл мне глаза!

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

>> Гы-гы-гы. В С++ для указателя на функцию требуется 4 байта (ну может 8 если на метод класса), а в яве *на каждый* такой указатель приходится делать анонимный класс, который еще на диске занимает 500 байт, а сколько в памяти -- так это вообще одному сану известно :-)

> Придурок! На экземпляр не создается никаких ананонимных классов, это они создаются когда создается аномный класс по в стиле "аля делегат", а не КАЖДЫЙ экземпляр.

Что-то много развелось понтовых анонимусов...

Часто ли, о мудрейший, программисты создают ДВА экземпляра одного анонимного класса??? Особенно при программировании интерфейсов?

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

> MyClass c1 = new MyClass(); MyClass c2 = new MyClass(); c1 = c2;

> Ведь c1 и c2, по твоей логике (а она разумеется безупречна), принадлежат к разным анонимным классам...

Ты за три года так яву и не осилил. с1 и с2 это не экземпляры анонимного класса. Это экземпляры класса MyClass.

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

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

>Часто ли, о мудрейший, программисты создают ДВА экземпляра одного анонимного класса??? Особенно при программировании интерфейсов?

а часто ли они их вообще создают? анонимный класс это разовая штука под вполне конкретную задачу -да же в крупном проекте их едва ли наберется полсотни - ты тут из-за 150 кБ сраться собрался?

А создадть еще один экземпляр анонмного класс не проблема:

instanceOfAnonymousClass.getClass().newInstance();

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

>Ты за три года так яву и не осилил. с1 и с2 это не экземпляры анонимного класса. Это экземпляры класса MyClass. Я подозреваю что ты вообще не знаешь, что такое анонимный класс...

Слышь ламерье! Это чьи слова:

>Гы-гы-гы. В С++ для указателя на функцию требуется 4 байта (ну может 8 если на метод класса), а в яве *на каждый* такой указатель приходится делать анонимный класс, который еще на диске занимает 500 байт, а сколько в памяти -- так это вообще одному сану известно :-)

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

Вот и красноглазые неграмотные недомерки подтянулись.

Ты можешь обоснованно высказать претензии к .net? Не можешь. Убейся.

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

>>Часто ли, о мудрейший, программисты создают ДВА экземпляра одного анонимного класса??? Особенно при программировании интерфейсов?

>а часто ли они их вообще создают?

Ты вообще не знаешь что такое анонимные классы. Иди, читай jls.

>анонимный класс это разовая штука под вполне конкретную задачу -да же в крупном проекте их едва ли наберется полсотни - ты тут из-за 150 кБ сраться собрался?

На каждой форме обычно так штук 20 кнопочек, полей, и т.п. На каждую из них идет один или несколько (различных) анонимных классов.

>А создадть еще один экземпляр анонмного класс не проблема: instanceOfAnonymousClass.getClass().newInstance();

Но никто это не делает, потому что это никому не нужно. А если нужно, создают не анонимный класс.

Короче иди, прочти jls на английском, может поумнеешь... понтовый ты наш.

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

>Ты за три года так яву и не осилил. с1 и с2 это не экземпляры анонимного класса. Это экземпляры класса MyClass. Я подозреваю что ты вообще не знаешь, что такое анонимный класс... Слышь ламерье! Это чьи слова: >Гы-гы-гы. В С++ для указателя на функцию требуется 4 байта (ну может 8 если на метод класса), а в яве *на каждый* такой указатель приходится делать анонимный класс, который еще на диске занимает 500 байт, а сколько в памяти -- так это вообще одному сану известно :-)

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

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

>Ты вообще не знаешь что такое анонимные классы. Иди, читай jls.

В отличии от тебя, придурка знаю

>Ты вообще не знаешь что такое анонимные классы. Иди, читай jls.

группировать обработку элементов в одном обработчике религия не позволяет?

Иди нахер, ламерье!

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

>Пшел нах отсюда вендотролль

Иди в попу красноглазик, там тебя ждет твоя гента!

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

> Иди в попу красноглазик, там тебя ждет твоя гента!

Научись сначла постить, чмошник дотзадротовский

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

> Даже на тысяче кнопок получим оверхед в 3 метра - это не серьезно.

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

> Кроме того никто не мешает делать обработку событий без анонимных классов вообще.

Да и на ассемблере никто не мешает писать тоже... только где ты найдешь такого героя?

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

> Ты можешь обоснованно высказать претензии к .net?

.net это то самое говно, на котром виста? нахуй .net, mono и тебя, быдло

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

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

Тафай ссылки, добрейшей души человек, ДДЧ.

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

И что же это тогда за структуры такие?

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

>речь шла о том, что ява потребляет "столько сколько надо" -- я и показал, что она жрет сверх меры

в рамках своей концепции - "есть только классы", она есть ровно столько сколько надо, сделай общий обработчик для группы связанных элементов и будет тебе счастье.

P.S. В твоем высказвании меня покоробило слово "каждый" и я привел примеры, что это далеко не всегда так.

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

>накуй красноглазых похапешников!

Слава Мигелю!

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

> накуй красноглазых похапешников! >> накуй задолизов мигея

Дядька Столлмен ВАС всех покарает и задолизов и похапешников и гентушнегов (за правый уклон)

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

>Вначале была такая память, *одновременно* ОЗУ и диск -- матрица из магнитных колечек. У одного моего знакомого сохранилась :-)

Все возвращается обратно, скоро тоже будет ОЗУ и диск одно и то же. http://forum.ixbt.com/topic.cgi?id=11:35827

>Ты можешь обоснованно высказать претензии к .net? Не можешь. Убейся.

.NET маркетинговая шелуха Microsoft. Nuff said. Убейся

Ни на соляре, ни на ARM, ни на AIX .NET не запустится. Этого достаточно. Nuff said

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

> Как ни странно .NET есть под Windows 98, ME, 2000, XP, МасOS, Linux, BSD, Solaris, AIX.

Да ты что? Но только виста бе него не может обойтись. Во всех остальных системах это лишняя сущность.

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

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

> Тафай ссылки, добрейшей души человек, ДДЧ.

Понимаю... в гугле забанили? Вот первая ссылка:

http://www.c-sharpcorner.com/Language/StructuresInCSRVS.asp

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

>И что же это тогда за структуры такие?

Главное что они могут лежат на стэке, а не в куче. Такого в JVM нет.

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

>Ни на соляре, ни на ARM, ни на AIX .NET не запустится. Этого достаточно. Nuff said

вполне достаточно чтобы она запустилась у 90 процентов вантузятников, хотя я с тобой согласен - это инструмент в руках MS.

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

>Главное что они могут лежат на стэке, а не в куче. Такого в JVM нет.

И какие преимущества это нам дает - не нужно ждать сборщика мусора?

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

>Главное что они могут лежат на стэке, а не в куче. Такого в JVM нет.

Чё? Прямо в 16 регистрах процессора? Или таки в ОЗУ? А чем тогда куча в ОЗУ от стэка в ОЗУ отличается? Все = доступ то к ячейкам одинаково медленный, в сотни раз медленнее чем к регистрам проца

Тогда какая нах разница, в стэке или в куче?

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

> Открой для себя DotGNU!

Открой для себя мануал по дотгну и почитай. а потом почитай что такое .net от мс. и можешь смело утопиться в ванной.

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

> И какие преимущества это нам дает - не нужно ждать сборщика мусора?

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

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

>Как ни странно .NET есть под Windows 98, ME, 2000, XP, МасOS, Linux, BSD, Solaris, AIX.

Чё? Давай, показывай .NET Framework 3.5 для Linux и AIX. Отвечай за свои слова

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

>И еще семантика значения. Например, структурой удобно сделать тип Complex. Или например тип DateTime, чтоб его можно было складывать, вычитать, и не писать все время clone().

Это следствие того что она хранится в стеке - было бы не кошерно передать куда-нибудь во вне такую сцылку.

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

>>Главное что они могут лежат на стэке, а не в куче. Такого в JVM нет.

>Чё? Прямо в 16 регистрах процессора? Или таки в ОЗУ? А чем тогда куча в ОЗУ от стэка в ОЗУ отличается? Все = доступ то к ячейкам одинаково медленный, в сотни раз медленнее чем к регистрам проца

>Тогда какая нах разница, в стэке или в куче?

Это тот анонимус что крыл меня "ламером" ??? Мне влом тебя просвещать.

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

>Это тот анонимус что крыл меня "ламером" ??? Мне влом тебя просвещать.

не, крыл ламером тебя Я, теперь понимаю что погорячился....

P.S. Я думаю наряду с ЛОР эффектом, надо еще ввести такое понятие как ЛОР рефлекс

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

>>Ты вообще не знаешь что такое анонимные классы. Иди, читай jls.

>группировать обработку элементов в одном обработчике религия не позволяет?

Тебе я предлагаю не только группировать обработку элементов в одном обработчике, но и вообще всю программу сгрупировать в одном классе :-)

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

>Тебе я предлагаю не только группировать обработку элементов в одном обработчике, но и вообще всю программу сгрупировать в одном классе :-)

не, ну зачем же до маразма доводить

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

>Тебе я предлагаю не только группировать обработку элементов в одном обработчике, но и вообще всю программу сгрупировать в одном классе :-)

не, ну зачем же до маразма доводить

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

>Или например тип DateTime, чтоб его можно было складывать, вычитать, и не писать все время clone().

java.util.Calendar тоже складывается и вычитается

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

>В С++ для указателя на функцию требуется 4 байта (ну может 8 если на метод класса), 

Сомневаюсь что одно инстанциирование шаблона createCommandAdaptor в нижеприведенном коде дает менее 100 байт.
Сам объект занимает 4 байта указателт на инстанс + 8-32 байта указатель на метод + 4 байта указатель на vtable.
И еще. Мне такой тривиальный код удалось собрать с пятого раза, а я с С++ всего месяца три-четыре дело не имел.

class Command {
public:
	virtual void execute() = 0;
};

template<typename T> std::auto_ptr<Command> createCommandAdaptor(T* obj, void (T::*mem_ptr)() ){
	class CommandAdaptor : public Command {
		T *const _ptr;
		void (T::*_mem_ptr)();
	public:
		CommandAdaptor(T* ptr, void (T::*mem_ptr)())
			:_ptr(ptr)
			,_mem_ptr(mem_ptr)
		{}
		virtual void execute() {
			(_ptr->*_mem_ptr)();
		}
	};
	return std::auto_ptr<Command>(new CommandAdaptor(obj, mem_ptr));
}

class Foo {
public:
	void handler() {
		std::cout<<"Handler invoked\n";
	}
};


int main(int argc, char* argv[]) {
	std::auto_ptr<Foo> fooInst(new Foo);
	std::auto_ptr<Command> cmd(createCommandAdaptor(fooInst.get(), &Foo::handler));
	cmd->execute();
	return 0;
}

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

>>Ты вообще не знаешь что такое анонимные классы. Иди, читай jls.

>группировать обработку элементов в одном обработчике религия не позволяет?

Зачем мне в ООП - языке делать switch() в WndProc?

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