Главное меню
Мы солидарны с Украиной. Узнайте здесь, как можно поддержать Украину.

Ответ

Обратите внимание: данное сообщение не будет отображаться, пока модератор не одобрит его.
Ограничения: максимум вложений в сообщении — 3 (3 осталось), максимальный размер всех файлов — 300 КБ, максимальный размер одного файла — 100 КБ
Снимите пометку с вложений, которые необходимо удалить
Перетащите файлы сюда или используйте кнопку для добавления файлов
Вложения и другие параметры
Проверка:
Оставьте это поле пустым:
Наберите символы, которые изображены на картинке
Прослушать / Запросить другое изображение

Наберите символы, которые изображены на картинке:

√36:
ALT+S — отправить
ALT+P — предварительный просмотр

Сообщения в этой теме

Автор myst
 - июля 29, 2009, 01:14
Цитата: Алексей Гринь от июля 29, 2009, 01:09
Я хочу C#-/Java-подобный простенький язык, но шоб без огромного рантайма (а ля gcj'овский в 3 мегабайта, аха), без сборщика мусора, без зависимости от непонятных кривоватых динамически-типизированных либ типа GObject.
Да, нету щастья. Я, помню, искал-искал, но так и не нашёл. Нужна ось, у которой юзерленд из рантайма той же Жабы, Оберона или CL растёт, и будет всё OK. Но все велосипеды придётся переизобретать, особенно в случае Оберона. :)
Автор Алексей Гринь
 - июля 29, 2009, 01:09
Цитата: myst от июля 29, 2009, 00:57
Они его допилили? Помню, гноммеры раскидывали распальцовки на ЛОР'е, но тогда эта штука была сыровата.
Да мне не нравится ентот GObject. Я хочу C#-/Java-подобный простенький язык, но шоб без огромного рантайма (а ля gcj'овский в 3 мегабайта, аха), без сборщика мусора, без зависимости от непонятных кривоватых динамически-типизированных либ типа GObject. Шоб то, шо я делаю в объектно-ориентированном си, отшаблонить в более простые и абстрактные структуры...
Хоть сам иди и транслятор в Си пиши, ничего толкового нету (везде какие-нибудь медленные, тяжеловесные депенденсись) :( А ля

Цитироватьvar childClass = new childClass();
childClass.boo();

превратилось в что-то типа

ЦитироватьChildClass* childClass = ChildClass_create();
(*__dispatch(childClass, ChildClass_BOO))(); // где ChildClass_BOO енто макрос для, скажем, 2 (номер в таблице методов)

И усё. Потом любимым компилятором прошёлсе и получил бинарник. А вот Vala генерит для такого примера такой ужас, шо ужас.

Надо бы ужо осилить какой-нибудь yacc :)
Автор myst
 - июля 29, 2009, 00:57
Цитата: Алексей Гринь от июля 29, 2009, 00:55
Таки короче надо популяризировать Vala :)
Они его допилили? Помню, гноммеры раскидывали распальцовки на ЛОР'е, но тогда эта штука была сыровата.
Автор myst
 - июля 29, 2009, 00:55
Цитата: Алексей Гринь от июля 29, 2009, 00:38
Ужос...
Ну почему ужос? Да, он педальный, но очень полезный. Версия 1.7 просто замечательная, даром что бета ещё. :)
Автор Алексей Гринь
 - июля 29, 2009, 00:55
Таки короче надо популяризировать идеи Vala :)
Автор myst
 - июля 29, 2009, 00:53
Цитата: Алексей Гринь от июля 29, 2009, 00:48
Видимо, gс++ не инлайнил у меня...
Если мне память не изменяет, определение CPLala(int x, int y): x(x), y(y) { } всегда inline. :what:
Автор myst
 - июля 29, 2009, 00:50
Цитата: Алексей Гринь от июля 29, 2009, 00:38
А я-то сравниваю mingw-овские; тебе смысла нет, мне — есть :)
Ты опять не понял, я сравнивал варианты, собранные одними инструментами. Разница в пользу Си есть только у gcc из-за реализации new в libstdc++, ну и в delete есть лишнее ветвление (парни ниасилили стандарт, или реализация free была баговая :)).
Автор Алексей Гринь
 - июля 29, 2009, 00:48
Вообще оптимизаторы любят конструкторы инлайнить. Видимо, gс++ не инлайнил у меня...
Автор myst
 - июля 29, 2009, 00:45

.text:77C1C407                 mov     edi, edi
.text:77C1C409                 push    ebp
.text:77C1C40A                 mov     ebp, esp
.text:77C1C40C                 cmp     hHeap, 0
.text:77C1C413                 jnz     short loc_77C1C420
.text:77C1C415                 call    sub_77C0EF38
.text:77C1C41A                 test    eax, eax
.text:77C1C41C                 jnz     short loc_77C1C420
.text:77C1C41E                 pop     ebp
.text:77C1C41F                 retn
.text:77C1C420
.text:77C1C420 loc_77C1C420:   
.text:77C1C420                 push    dword_77C51808
.text:77C1C426                 push    [ebp+arg_0]
.text:77C1C429                 call    alloc_memory
.text:77C1C42E                 pop     ecx
.text:77C1C42F                 pop     ecx
.text:77C1C430                 pop     ebp
.text:77C1C431                 retn


.text:77C19CC5                 mov     edi, edi
.text:77C19CC7                 push    ebp
.text:77C19CC8                 mov     ebp, esp
.text:77C19CCA                 push    1
.text:77C19CCC                 push    [ebp+arg_0]
.text:77C19CCF                 call    alloc_memory
.text:77C19CD4                 pop     ecx
.text:77C19CD5                 pop     ecx
.text:77C19CD6                 pop     ebp
.text:77C19CD7                 retn

malloc медленнее из-за ветвления. Я же говорил, что никаких чудес. :)
Автор Алексей Гринь
 - июля 29, 2009, 00:38
Цитата: myst от июля 29, 2009, 00:33
GCC у меня из cygwin'а вообще.
Ужос...

Цитата: myst от июля 29, 2009, 00:33
Сравнивать скорость cygwin'овских со скоростью «родных» программ смысла нет.
А я-то сравниваю mingw-овские; тебе смысла нет, мне — есть :)