LINUX.ORG.RU

Вышел CrystaX NDK 10.2.0

 , ,


1

3

Новая версия CrystaX NDK 10.2.0 (набор инструментов для разработки на C/C++/Objective-C под Android) доступна для скачивания.

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

  • Поддержка Objective-C v2 runtime и начальных Cocoa-совместимых фреймворков (Foundation и CoreFoundation).
  • Добавлены готовые к использованию библиотеки Boost 1.58.0. В рамках проекта CrystaX NDK ведется регулярное регрессионное тестирование Boost под Android, ведущее к улучшениям как в Boost, так и в CrystaX NDK.
  • Добавлен новый набор инструментов (toolchain) на основе clang-3.6, с переносом всех исправлений, сделанных в clang-3.4 и clang-3.5 в рамках проекта.
  • Добавлены готовые к использованию libpng-1.6.17, libjpeg-9a и libtiff-4.0.4beta.
  • А также большое количество исправлений и мелких улучшений, в сумме ведущих к более стандартному и предсказуемому поведению CrystaX NDK.

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



Проверено: Shaman007 ()
Последнее исправление: crystax (всего исправлений: 1)

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

Чтобы ты меня понял, приведу др. код:

Фееричный говнокод.

Т.е. сгруппировать исключения в одном блоке catch (Some_error& e) не получится, и придётся городить ублюдочный код:

Еще один говнокод, который показывает, что вы не представляете, как пользоваться исключениями в C++.

Лучше уж

Ну вот тут есть место для того, чтобы попросить вас прояснить тезис о том, что нельзя прятать ошибки. Итак, у вас есть что-то вроде:

int e1 = begin_transaction();
if( OK == e1 )
{
  int e2 = store_history();
  if( OK == e2 )
    ...
  else
  {
    int e3 = rollback_transaction();
    if( OK != e3 )
      ... // (1)
  }
}
Итак, в точке (1) у вас есть два кода ошибки (e2 и e3), какой вы будете возвращать наверх?

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

Фееричный говнокод.

Ну я то твой тоже видел :-) Без слёз не взглянешь на твой serializer или что там у тебя за либа? :-)

Еще один говнокод, который показывает, что вы не представляете, как пользоваться исключениями в C++.

Ути-пути :-) Какая сложная тема - пользоваться исключениями в цепепе. Прям таки уровень computer science :-)

Итак, в точке (1) у вас есть два кода ошибки (e2 и e3), какой вы будете возвращать наверх?

Смешной дядя. Не вижу что из чего там возвращать, но там осталось обработать только e3. Кстати, ваш вождь в главе про потоки своей книги написал, что предпочитает обычные if/else вместо исключений. И он же черным по белому написал, что if/else предпочтительней, когда можно обработать ошибку «здесь и сейчас». Так что не надо задрачивать себя и окружающих исключениями :-) Рулят макры, расширяющие язык, как обычно, а исключения сосуд :-)

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

Без слёз не взглянешь на твой

Так если неадекватные лисперы смотрят плюсовый код, то другой реакции ожидать не приходится.

Какая сложная тема - пользоваться исключениями в цепепе.

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

Не вижу что из чего там возвращать, но там осталось обработать только e3.

Т.е. первопричину, а именно e2, вы тупо теряете. И после этого обвиняете проглатывание исключений в деструкторах? Молодца.

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

Какая сложная тема - пользоваться исключениями в цепепе. Прям таки уровень computer science

Нет. Это совсем не уровень computer science. Это значительно проще. Именно поэтому неумение ими пользоваться наталкивает на определенные мысли насчет профессионализма собеседника и заставляет сомневаться в его умении «писать на цепепе».

crystax
() автор топика
Ответ на: комментарий от eao197

Так если неадекватные лисперы смотрят плюсовый код, то другой реакции ожидать не приходится.

Да не, вон у чела

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

Она для меня не сложная, а уродливая. И те костыли, что я нагородил с помощью ущербных макр цепепе, лишь для демострации потуг обойти уродливые причуды цепепе :-)

Т.е. первопричину, а именно e2, вы тупо теряете. И после этого обвиняете проглатывание исключений в деструкторах? Молодца.

Если в придуманном тобой коде что-то и теряется, то причём тут я? Я же вижу 3 ошибки и 2 обработчика. Откуда мне знать, каких грибов ты наелся и что ты там представляешь? :-)

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

Так если неадекватные лисперы смотрят плюсовый код, то другой реакции ожидать не приходится.

Ой. Да не, вон у чела, который тут NDK опубликовал, код приятнее твоего. :-)

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

Именно поэтому неумение ими пользоваться наталкивает на определенные мысли насчет профессионализма собеседника и заставляет сомневаться в его умении «писать на цепепе».

Ой, да ладно, много ты знаешь :-) Ты вообще, вроде как, уже сказал своё «досвидания» и сослался на нехватку времени, а на самом деле сидишь и мониторишь :-)

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

по аналогии, ты скачиваешь ndk, а прицепом получаешь zlib. в чем разница?

zlib используется самой ndk, для доступа к assets как минимум, boost в ndk как пятая нога у собаки.

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

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

чувак, ты сел в лужу. тебе об этом все говорят, а топик стартер еще и пример кода привел. смирись уже.

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

я тоже не знал. только я и не кричу нигде, что это невозможно, а ты кричал.

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

zlib используется самой ndk, для доступа к assets как минимум

zlib входит в состав NDK не по этой причине. Если вам из кода надо доступиться к assets, zlib для этого не потребуется. zlib входит в состав NDK ровно по той же причине, по какой мы туда включили Boost - чтобы дать возможность его использования пользователям NDK. Это такая же сторонняя библиотека, как и те, что входят в состав Boost.

boost в ndk как пятая нога у собаки.

CrystaX NDK - это development toolkit, т.е. набор инструментов для разработки. Набор, понимаете? Не библиотека, не фреймворк, а набор инструментов. В строительных магазинах видели наборы инструментов, в которые и гаечные ключи входят, и отвертки и даже плоскогубцы? Против таких наборов вы тоже протестуете?

Это что, фобия? Боитесь замараться о Boost, скачав его на непорочный компьютер? Вам уже не один человек сказал, что пользоваться никто не заставляет. Это всего лишь дополнительный инструмент, который входит в состав NDK, и входит потому, что многим это удобно - бери и пользуйся. Единственный минус этого - несколько больший размер пакета NDK, но это несущественный минус (для справки: добавление Boost в архив NDK увеличивает его размер на 36 Мб).

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

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

Да. Ваши убогие потуги обойти ваше незнание и/или неумение использовать исключения C++.

Я же вижу 3 ошибки и 2 обработчика.

Посмотрите на точку (1) в примере. Там есть два кода ошибки. Наверх нужно вернуть всего один. Какой из?

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

Если вам из кода надо доступиться к assets, zlib для этого не потребуется

Это как же без zlib будут ресурсы из zip/apk выниматься?

zlib входит в состав NDK ровно по той же причине, по какой мы туда включили Boost

Какая-то ущербная логика. NDK чудно работает из без наличия boost.

Boost - чтобы дать возможность его использования пользователям NDK.

А ведь незнающие люди подумают, что без вас они не смогут воспользоваться boost'ом. Хорошо, что вы это им разрешили.

CrystaX NDK - это development toolkit, т.е. набор инструментов для разработки. Набор, понимаете? Не библиотека, не фреймворк, а набор инструментов.

Ага, вам есть куда расти. В мире так много инструментов, которые вы еще не успели включить в ndk.

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

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

Это что, фобия? Боитесь замараться о Boost, скачав его на непорочный компьютер?

Проект ваш, вам решать, что в него запихивать. Теперь для меня этот проект скорее мертв, чем жив.

Вам уже не один человек сказал, что пользоваться никто не заставляет.

Я уже выше приводил аналогию.

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

Да. Ваши убогие потуги обойти ваше незнание и/или неумение использовать исключения C++.

Не неумения, а чувство эстетики. Не нравится мне каждый чих оборачивать try-конструкциями. Не нравится мне давить исключения в деструкторах. Вашей братии даже Страуструп сказал, что предпочтительней использовать if/else, где это возможно. В частности, он же и сказал, что предпочитает ошибки библиотеки потоков обрабатывать напрямую, потому что это удобнее твоих любимых исключений. Но ты упоролся и очевидного не признаёшь или делаешь вид, что кто-то чего-то не понимает.

Посмотрите на точку (1) в примере. Там есть два кода ошибки. Наверх нужно вернуть всего один. Какой из?

На какой верх, дядя? Ты помешался на раскрутке стека что-ли? Исключения придуманы для того, чтобы когда нельзя обработать ошибку на месте и сразу, перепасовывать её вызывающему коду. Но делать это можно не только через исключения, но и через спец. значения. Да, это уродливо, потому что цепепе, как и це - это 2 уродца, которые не позволяют возвращать из ф-ий несколько значений. Но и исключения - это не сахар, а приделывание к уродцу ещё одно болячки. Нормальный человек после осознания этого будет стремиться держаться подальше от цепепе или от це, а не пытаться притянуть за уши через задних проход какие-то воркэраунды или доказывать «как в цепепе всё хорошо, это вы сами виноваты, что неосилили такой прекрасный инструмент». :-) Ладно, у меня больше нет на вас времени. Если кого обидел, задел, зацепил - прошу меня простить. Мне действительно пора. До скорых встреч :-)

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

Что ты представляешь под «NDK чудестно работает»?

NDK это набор библиотек и чем их будет больше, тем лучше. Ими всеми пользоваться не обязательно.

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

Это как же без zlib будут ресурсы из zip/apk выниматься?

Читайте внимательней. Для того, чтоб вынуть assets, вам zlib не нужна. Она нужна коду, который реализует Assets API. А этот код - часть Android, и там (на устройстве с Android на борту) zlib есть. Если бы ее не положили в NDK, Assets API продолжал бы работать как ни в чем не бывало. Поэтому очевидно, что в NDK zlib положили не по той причине, которую вы привели в качестве аргумента.

Ага, вам есть куда расти. В мире так много инструментов, которые вы еще не успели включить в ndk.

Совершенно верно. Именно так мы и намеренны поступать.

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

В цифровом мире, в отличии от реального, балкон очень большой, и хлам на нем практически незаметен. Но если вам по какой-то причине так важно сохранить свой цифровой балкон в первозданной чистоте, это делается элементарно:

$ rm -Rf /opt/android/crystax-ndk-10.2.0/sources/boost*

Многим же этот «хлам» нужен, и для них очень удобно, что он есть «из коробки».

Проект ваш, вам решать, что в него запихивать.

Именно так. И не вам указывать.

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

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

Ну, что и требовалось доказать. Проблема не в C++, а в вашем личном восприятии.

На какой верх, дядя?

Вам задали вполне конкретный простой вопрос. Вместо ответа не него вы выплескиваете очередной поток бреда.

Посему в сухом остатке: мнение анонимуса с кучей смайлов в сообщениях по поводу C++ всерьез воспринимать нельзя.

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

Что ты представляешь под «NDK чудестно работает»?

Только то, что ndk - native development kit. Что в данном контексте говорит о инструменте для разработки под андроед. Специфичном наборе инструментов. Буст таковым не является, поскольку он платформонезависим.

NDK это набор библиотек и чем их будет больше, тем лучше. Ими всеми пользоваться не обязательно.

Каким образом бандлинг с бустом (или иной либой) увеличит количество библиотек?

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

Если бы ее не положили в NDK, Assets API продолжал бы работать как ни в чем не бывало. Поэтому очевидно, что в NDK zlib положили не по той причине, которую вы привели в качестве аргумента.

Ваш аргумент принят.

Совершенно верно. Именно так мы и намеренны поступать.

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

В цифровом мире, в отличии от реального, балкон очень большой, и хлам на нем практически незаметен. Но если вам по какой-то причине так важно сохранить свой цифровой балкон в первозданной чистоте, это делается элементарно:

Вы можете не использовать маргарин, просто выбросьте его в мусор. Но взять его в нагрузку вы обязаны.

Многим же этот «хлам» нужен, и для них очень удобно, что он есть «из коробки».

Те, кому нужен буст в приложении и без вашего crystax ndk его уже скачали и подключили.

Именно так. И не вам указывать.

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

p.s. Так где вы узрели грубость в отношении вас? Сдается мне, что для вас будет грубостью любое мнение, отличное от вашего. Коль вы решили выставить свой проект на всеобщее обозрение, то будьте готовы выслушать мнение, отличное от вашего.

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

Если boost платформонезависим, то мне бы хотелось его видеть сразу в составе ndk android, а не собирать его самому.

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

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

Если boost платформонезависим, то мне бы хотелось его видеть сразу в составе ndk android, а не собирать его самому.

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

не это приходилось делать самому, сейчас появились люди, которые готовы это делать вместо меня. Это экономит мое время и нервы.

Может тогда не стоит вам использовать буст, раз он портит ваши нервы?

Тут спасибо надо говорить.

Ну так скажите этим людям спасибо. Что вам мешает?

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

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

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

Те, кому нужен буст в приложении и без вашего crystax ndk его уже скачали и подключили.

Это не так. Далеко не все. Я сейчас даже не говорю о известных мне коммерческих проектах, использующих наш проект, где восприняли новость о включении Boost в состав NDK с радостью. Но посмотрите на open source проекты - там тоже многие этому рады и с радостью используют. Вот вам два примера: OpenMW и OSVR (поищите там на страничках упоминание Boost и вы увидите, что они рады тому, что Boost включен в CrystaX NDK).

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

Ну конечно же, не боюсь. Я готов дискутировать, и принимать во внимание точку зрения оппонента. Но именно точку зрения, а не поток помоев.

Так где вы узрели грубость в отношении вас?

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

crystax
() автор топика
Ответ на: комментарий от andreyu

Что именно вам нужно от буста? Вас не смущает, что большая часть буста идет в хедерах и собирать там просто нечего. Видимо с бустом вы знакомы чисто по картинкам.
Может тогда не стоит вам использовать буст, раз он портит ваши нервы?

чувак, да ты упорот. пойди попей воды из унитаза, охладись.

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

Вас не смущает, что большая часть буста идет в хедерах и собирать там просто нечего

Это, кстати, очень далеко от истины:

$ ls -l /opt/android/crystax-ndk-10.2.0/sources/boost/1.58.0/libs/armeabi-v7a
total 46400
-rw-r--r-- 1 crystax staff    2210 Jun 19 09:02 libboost_atomic.a
-rwxr-xr-x 1 crystax staff   52508 Jun 19 09:02 libboost_atomic.so
-rw-r--r-- 1 crystax staff  124918 Jun 19 09:02 libboost_chrono.a
-rwxr-xr-x 1 crystax staff   36328 Jun 19 09:02 libboost_chrono.so
-rw-r--r-- 1 crystax staff   59678 Jun 19 09:02 libboost_container.a
-rwxr-xr-x 1 crystax staff  109668 Jun 19 09:02 libboost_container.so
-rw-r--r-- 1 crystax staff   93794 Jun 19 09:02 libboost_context.a
-rwxr-xr-x 1 crystax staff   51312 Jun 19 09:02 libboost_context.so
-rw-r--r-- 1 crystax staff  104418 Jun 19 09:02 libboost_coroutine.a
-rwxr-xr-x 1 crystax staff   57708 Jun 19 09:02 libboost_coroutine.so
-rw-r--r-- 1 crystax staff  147152 Jun 19 09:02 libboost_date_time.a
-rwxr-xr-x 1 crystax staff  126964 Jun 19 09:02 libboost_date_time.so
-rw-r--r-- 1 crystax staff    1450 Jun 19 09:02 libboost_exception.a
-rw-r--r-- 1 crystax staff  154996 Jun 19 09:02 libboost_filesystem.a
-rwxr-xr-x 1 crystax staff  102572 Jun 19 09:02 libboost_filesystem.so
-rw-r--r-- 1 crystax staff  851078 Jun 19 09:02 libboost_graph.a
-rwxr-xr-x 1 crystax staff  404644 Jun 19 09:02 libboost_graph.so
-rw-r--r-- 1 crystax staff  275760 Jun 19 09:02 libboost_iostreams.a
-rwxr-xr-x 1 crystax staff  168992 Jun 19 09:02 libboost_iostreams.so
-rw-r--r-- 1 crystax staff 1211994 Jun 19 09:02 libboost_locale.a
-rwxr-xr-x 1 crystax staff  635568 Jun 19 09:02 libboost_locale.so
-rw-r--r-- 1 crystax staff 2775018 Jun 19 09:02 libboost_log.a
-rwxr-xr-x 1 crystax staff 1063908 Jun 19 09:02 libboost_log.so
-rw-r--r-- 1 crystax staff 2816310 Jun 19 09:02 libboost_log_setup.a
-rwxr-xr-x 1 crystax staff 1451576 Jun 19 09:02 libboost_log_setup.so
-rw-r--r-- 1 crystax staff  208842 Jun 19 09:02 libboost_math_c99.a
-rwxr-xr-x 1 crystax staff  131712 Jun 19 09:02 libboost_math_c99.so
-rw-r--r-- 1 crystax staff  209798 Jun 19 09:02 libboost_math_c99f.a
-rwxr-xr-x 1 crystax staff  131972 Jun 19 09:02 libboost_math_c99f.so
-rw-r--r-- 1 crystax staff  208938 Jun 19 09:02 libboost_math_c99l.a
-rwxr-xr-x 1 crystax staff  130400 Jun 19 09:02 libboost_math_c99l.so
-rw-r--r-- 1 crystax staff 4155868 Jun 19 09:02 libboost_math_tr1.a
-rwxr-xr-x 1 crystax staff  422812 Jun 19 09:02 libboost_math_tr1.so
-rw-r--r-- 1 crystax staff 4231096 Jun 19 09:02 libboost_math_tr1f.a
-rwxr-xr-x 1 crystax staff  441364 Jun 19 09:02 libboost_math_tr1f.so
-rw-r--r-- 1 crystax staff 4154306 Jun 19 09:02 libboost_math_tr1l.a
-rwxr-xr-x 1 crystax staff  422108 Jun 19 09:02 libboost_math_tr1l.so
-rw-r--r-- 1 crystax staff   88746 Jun 19 09:02 libboost_prg_exec_monitor.a
-rwxr-xr-x 1 crystax staff  109668 Jun 19 09:02 libboost_prg_exec_monitor.so
-rw-r--r-- 1 crystax staff 1364534 Jun 19 09:02 libboost_program_options.a
-rwxr-xr-x 1 crystax staff  592452 Jun 19 09:02 libboost_program_options.so
-rw-r--r-- 1 crystax staff   42842 Jun 19 09:02 libboost_random.a
-rwxr-xr-x 1 crystax staff   29924 Jun 19 09:02 libboost_random.so
-rw-r--r-- 1 crystax staff 2426662 Jun 19 09:02 libboost_regex.a
-rwxr-xr-x 1 crystax staff 1084552 Jun 19 09:02 libboost_regex.so
-rw-r--r-- 1 crystax staff 1113060 Jun 19 09:02 libboost_serialization.a
-rwxr-xr-x 1 crystax staff  562360 Jun 19 09:02 libboost_serialization.so
-rw-r--r-- 1 crystax staff  238278 Jun 19 09:02 libboost_signals.a
-rwxr-xr-x 1 crystax staff  169140 Jun 19 09:02 libboost_signals.so
-rw-r--r-- 1 crystax staff   13394 Jun 19 09:02 libboost_system.a
-rwxr-xr-x 1 crystax staff   63908 Jun 19 09:02 libboost_system.so
-rw-r--r-- 1 crystax staff 1578166 Jun 19 09:02 libboost_test_exec_monitor.a
-rw-r--r-- 1 crystax staff  324234 Jun 19 09:02 libboost_thread.a
-rwxr-xr-x 1 crystax staff  172788 Jun 19 09:02 libboost_thread.so
-rw-r--r-- 1 crystax staff   15268 Jun 19 09:02 libboost_timer.a
-rwxr-xr-x 1 crystax staff   19212 Jun 19 09:02 libboost_timer.so
-rw-r--r-- 1 crystax staff 1785238 Jun 19 09:02 libboost_unit_test_framework.a
-rwxr-xr-x 1 crystax staff  862168 Jun 19 09:02 libboost_unit_test_framework.so
-rw-r--r-- 1 crystax staff 4068200 Jun 19 09:02 libboost_wave.a
-rwxr-xr-x 1 crystax staff 1723768 Jun 19 09:02 libboost_wave.so
-rw-r--r-- 1 crystax staff  811996 Jun 19 09:02 libboost_wserialization.a
-rwxr-xr-x 1 crystax staff  397396 Jun 19 09:02 libboost_wserialization.so
crystax
() автор топика
Ответ на: комментарий от eao197

Посему в сухом остатке: мнение анонимуса с кучей смайлов в сообщениях по поводу C++ всерьез воспринимать нельзя.

Ну это с т.з. фонатов цепепе. А т.з. адекватно воспринимающих действительность, в сухом остатке показано и доказано, что главное достойнство цепепе - деструкторы - непригодны для освобождения удалённых ресурсов в коде, претендующем быть надёжным и предсказуемым. В ответ предложено банально использовать функции и отлавливать их исключения. Иными словами, налицо изъян дизайна цепепе, что даёт повод не вопринимать всерьёз его т.н. «преимущества». :-)

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

я тоже не знал. только я и не кричу нигде, что это невозможно, а ты кричал.

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

p.s. для будущих поколений дебилоидов: я изначально писал что C++ плохая идея для OS platform API, по сравнению с C#, java и ObjC. потому что в C++ нет никаких встроенных средств для вменяемого обеспечения обратной совместимости, а костыли, которые придумывает каждый 2й крестокодер — остаются костылями, и не масштабируются. все остальное, что вы мне приписываете — ваши фантазии.

waker ★★★★★
()
Последнее исправление: waker (всего исправлений: 1)
Ответ на: комментарий от anonymous

Ну это с т.з. фонатов цепепе.

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

waker ★★★★★
()
Последнее исправление: waker (всего исправлений: 1)
Ответ на: комментарий от andreyu

Вы можете не использовать маргарин, просто выбросьте его в мусор. Но взять его в нагрузку вы обязаны.

у этого заболевания 100% есть название.

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

я изначально писал что C++ плохая идея для OS platform API

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

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

у тебя руки из жопы растут, не значит, что и у других так же

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

проект масштаба Qt, например, на крестах, с нативным крестовым API, и чтобы вот это все работало, как в твоем примере, на протяжении всего жизненного цикла (всмысле, как если бы Qt 1,2,3,4,5 были бы вот так друг с другом совместимы)

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

waker ★★★★★
()
Последнее исправление: waker (всего исправлений: 2)
Ответ на: комментарий от waker

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

я - нет. опыта пока не хватает, поэтому и не ору на всех углах пытаясь выглядеть профи (как убогие клоуны типа тебя). но другие могут, и пруфы тебе приводили.

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

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

symbian чего проигнорировал?

потому что (цитата из педивикии):

Symbian OS has generally maintained reasonable binary code compatibility. In theory the OS was BC from ER1-ER5, then from 6.0 to 8.1b. Substantial changes were needed for 9.0, related to tools and security, but this should be a one-off event.

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

waker ★★★★★
()
Последнее исправление: waker (всего исправлений: 1)
Ответ на: комментарий от waker

потому что (цитата из педивикии):

бугога! о всем остальном ты тоже знаешь из википедии, это видно сразу.

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

народ собирал апликухи под symbian 6.0 и они без пересборки работали на nokia belle (symbian 10.1) - GreenMail. но ты иди, читай википедию, может еще что-то бредовое вычитаешь. молчал бы в тряпочку, клоун.

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

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

Если не принимать во внимание оскорбительный тон анонима, по существу он прав.

GreenMail - это программа Олега Голосовского, моего хорошего друга и коллеги, с которым мы долгое время работали. Первый раз я эту программу установил в 2003-ем году на свой телефон Nokia 7650. К тому моменту ее разработка уже была завершена и Олег ее выложил у себя на сайте http://www.sw4u.org/ (сейчас это уже не его сайт, поэтому идти туда не надо, там уже его софта нет).

С тех пор у меня сменилось несколько телефонов (на каждом была новая версия Symbian, можете проверить это самостоятельно - Nokia 6600, Nokia N70, Nokia E70, и последний Nokia C7-00), и на все эти телефоны я устанавливал GreenMail - тот самый бинарный sis (формат бинарных пакетов для Symbian), собранный в 2002-ом году.

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

crystax
() автор топика
Ответ на: комментарий от waker

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

ога-ога. клоун.

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

Можешь конкретно указать что я отрицаю? Я завтра проверю информацию про симбу, и отпишусь. В данный момент у меня недостаточно фактов для продолжения дискуссии.

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

Можешь конкретно указать что я отрицаю?

Сначала вы отрицали, что возможно создать C++ API, который будет сохранять бинарную совместимость от версии к версии. Я своим примером показал, что это не так.

Затем вы сочли этот пример ничего не доказывающим, т.к. он, по вашим словам, «уровня хеллоуворлд», и потребовали другой пример, более крупного проекта. Хотя я до сих пор не понимаю, чем крупный проект в этом смысле лучше, чем простой пример, в котором ясно и наглядно, без лишней шелухи, продемонстрированы основные техники обеспечения обратной совместимости в случае C++ API. Symbian, который я привел ранее в качестве такого примера, вы проигнорировали.

Вы заявили: «вот будет у тебя проект масштаба Qt, например, на крестах, с нативным крестовым API, и чтобы вот это все работало, как в твоем примере, на протяжении всего жизненного цикла (всмысле, как если бы Qt 1,2,3,4,5 были бы вот так друг с другом совместимы) тогда можно продолжать разговор». Сегодня аноним напомнил вам о таком проекте - Symbian (хоть и сделал это в оскорбительной манере), и упомянул при этом GreenMail, автор которой мой хороший друг и коллега, и которой я сам пользовался продолжительное время. Поэтому я счел нужным вмешаться и предоставить дополнительную информацию.

Вроде верно отразил развитие ситуации. Поправьте меня, если я в чем-то ошибся.

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

Правильно, это проблема в дизайне цепепе :-)

Нет, это, как минимум, проблема многих языков. И я ещё раз повторюсь - «классы типа Transaction» вполне себе могут существовать. Иногда проблему можно проигнорировать. Скажем, не удалась запись в лог - плохо, но не смертельно. Если же нам важно обработать ошибку, то явно вызываем close/commit/что угодно и обрабатываем.

«Сигнальный протокол CL», точно так же, не работает сам собой - всё равно надо писать код обрабатывающий ошибки.

О, к тебе приходит вменяемость

Жаль только ты по прежнему продолжаешь троллить и игнорировать неудобные комментарии.

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

Ключевые слова «по возможности».

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

ГЦ - это ГЦ. Прекрасно, что он выполняет свою работу, и я о ней знаю. Но себя то я контролирую :-)

А по существу ответишь? Ты пишешь лямбду, захватывающую переменную на стеке и передаёшь её куда-то. Откуда компилятору, при отсутствии ГЦ, знать, что надо делать?

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

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

Лисп вообще самодокументируемый язык с полным отсутствием синтаксиса и прямой семантикой, что способствует созданию первоклассных IDE.

Ну то есть сказать тебе нечего. Как обычно.

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

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

Лол, сказал поборник лиспа с его макросами.

исключения не используются в Qt

Опять враньё.

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

Сначала вы отрицали, что возможно создать C++ API, который будет сохранять бинарную совместимость от версии к версии.

лолшто??? а еще интеллигентом прикидываешься. с таким подходом недолго и в френдлист попасть.

Я своим примером показал, что это не так.

ты своим примером показал _еще один_ способ обеспечивать обратную совместимость. то что я не знал конкретно об этом способе — вообще не меняет ничего.

Symbian, который я привел ранее в качестве такого примера, вы проигнорировали.

в тот момент не стояла задача макать тебя симбианом в бочку с дегтем, и я пытался объяснить все на словах.

Вроде верно отразил развитие ситуации. Поправьте меня, если я в чем-то ошибся.

поправляю: твой пример не отражает, например, условие моей задачи вообще.

задача: собрать программу с SDK2, запускать на SDK1.

пример с greenmail: собран на SDK1, запускается на SDK2.

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

в отличие от моего условия — твое решается элементарно даже в С++, при должной аккуратности. даже в Qt это работает, хоть и только в рамках 1 мажорного релиза.

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

Я завтра проверю информацию про симбу, и отпишусь.

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

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

поправляю: твой пример не отражает, например, условие моей задачи вообще.

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

waker ★★★★★
()
Последнее исправление: waker (всего исправлений: 1)
Ответ на: комментарий от waker

лолшто??? а еще интеллигентом прикидываешься. с таким подходом недолго и в френдлист попасть.
ты своим примером показал _еще один_ способ обеспечивать обратную совместимость. то что я не знал конкретно об этом способе — вообще не меняет ничего.
в тот момент не стояла задача макать тебя симбианом в бочку с дегтем, и я пытался объяснить все на словах.

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

Крайне жалкое и омерзительное зрелище. С этого момента данный микроорганизм для меня в полном игноре.

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

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

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

по сути твоя реализация pimpl, это тот же самый COM, но без абстрактной фабрики (потому что линкер теперь внезапно такое может, кстати как давно это реализовали?), и без совместимости с чем либо кроме крестов (наверное, для вас плюсовиков это тоже плюс).

а теперь, когда до тебя донесена информация, что твой подход ничем принципиально от COM не отличается, а COM считается костылем чуть менее чем всеми программистами — давай вернемся к отрицанию, и прочей хероте, которую ты мне приписываешь.

цитирую фразу, на которую у тебя случилась стойка:

в C++ нет рефлекшена. без этого проблематично проверить существование определенных классов и их методов в рантайме, перед их использованием. поэтому придумали COM и подобные штуки.

и далее по треду:

Коротко говоря, pimpl+mangle/demangle+dlsym - наше все.

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

тебе не кажется, что ты на второй круг уже зашел, если не третий?

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

С этого момента данный микроорганизм для меня в полном игноре.

а, ну ок. прямо по взаимному согласию :D

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

Symbian OS has generally maintained reasonable binary code compatibility. In theory the OS was BC from ER1-ER5, then from 6.0 to 8.1b. Substantial changes were needed for 9.0, related to tools and security, but this should be a one-off event.

Это, кстати, выдранная с мясом цитата, в очередной раз показывающая уровень компетентности и умения работать с источниками.

Я помню переход на Symbian 9.0. Действительно, были очень большие изменения в SDK и новая (плохо, впрочем, проработанная и реализованная) система security для приложений. Но это никак не касалось обратной бинарной совместимости. Ничего не ломалось, как бы этого ни хотелось неуважаемому оппоненту.

crystax
() автор топика
Ответ на: комментарий от waker

а еще интеллигентом прикидываешься

бугога! чтовы, чтовы, такое же быдло как и вы (с). ржунимагу.

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

Это, кстати, выдранная с мясом цитата

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

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