Тоже писал подобное. Весь toolchain — 14Mb (вместе с libgdx 56Mb) это всё необходимое для сборки ничего и больше качать не надо.
А gradle это минимум 2Гб оверхеда и медленная сборка. AndroidStudio это минимум 3Гб RAM но лучше больше, гиг триграм и других индексов.
а тут слил с флешки 14Мб, распаковал, написал
./ma init-app myapp
./ma build myapp
./ma install myapp
и оно на телефоне и сборка myapp занимает 2сек.
если надо по классам поискать, то весь индекс по всему андройду занимает ~160кб.
./ma find-class Intent | grep android android.app.IntentService
android.app.PendingIntent
android.app.PendingIntent$CanceledException
android.app.PendingIntent$OnFinished
android.content.Intent
android.content.IntentFilter
android.content.IntentFilter$AuthorityEntry
android.content.Intent$FilterComparison
android.content.IntentFilter$MalformedMimeTypeException
android.content.IntentSender
android.content.IntentSender$OnFinished
android.content.IntentSender$SendIntentException
android.content.Intent$ShortcutIconResource
android.content.pm.LabeledIntent
android.provider.ContactsContract$Intents
android.provider.ContactsContract$Intents$Insert
android.provider.Contacts$Intents
android.provider.Contacts$Intents$Insert
android.provider.Contacts$Intents$UI
android.speech.RecognizerIntent
android.speech.RecognizerResultsIntent
./ma show-class android.content.Intent | grep put | grep double public android.content.Intent putExtra(java.lang.String, double);
public android.content.Intent putExtra(java.lang.String, double[]);
И что это делает абсолютно не возможным запуск компилятора? Какое отношение это имеет к компилятору? Его задача строить AST деревия и из них собирать бинарники. А тут целеноправлено линкеру запрещено указывать SYSTEM и SUBSYSTEM ниже Vist-ы. Каким боком тут новые функции user32? Неужели компилятор использовал именно эти методы которые удалили? Или не может работать без свеже добавленных? Накой хрен спрашивается в винде директория WinSxS?
> замените слово «аудитории» на «платформ/операционных систем/сред исполнения», надеюсь, смысл фразы станет понятнее.
Да. То есть среда для ширпотреба, но для этого есть другие языки. более «безопасные» и «управляемые»
> читайте комментарии внимательнее
Внимательно прочитал EncodePinter/DecodePointer у которых жутко сложная реализация примерно такого вида ptr^=CONST очень сильно увеличивают безопасность и производительность и требуют «Minimum supported client: WindowsXP SP2»
«Ради нескольких процентов аудитории» — C++ стала попсой и расчитанной на 98% аудитории?
«терять в производительности или безопасности для всех остальных пользователей — как-то глупо» и в каком месте выросла безопасность и увеличилась производительность?
Вот тут путаница C++ уже давно не C++ а C++11, C++14, C++17, C++20…
Под линуксом такого безобразия нет как под виндой и там gcc работает и кроскомпилирует. А в винде нет.
Какие такие подходы изменились. Под DOS, Win3.1 и unix С/С++98 компилятор работает без проблем например digitalmars. При желании можно запустить в виртуалке или в dosbox-е. Почему C++11 так не может. Что такого он использует при генерации кода что ему мешает работать на старых системах?
«Речь идет про систему 16-летней» ага через 3года и на windows7 перестанет собираться. Хочется привести ссылку на https://geektimes.ru/post/281470/
Причем тут система, железо то тот же самое и форматы файлов те же. Почему вдруг появилась привязка к системе? Что такого требует «hello world» что ему мешает пускаться на winxp. Тут только одно объяснение — кому-то это выгодно.
Более того новые редакции C++ вводят эти самые deprecated и не очевидное поведение очень шустро. То что раньше можно было использовать становится UB. Уже кто-то говорил «В случае UB gcc старается генерировать максимально не корректный код». А чудеса оптимизации, когда бесконечные циклы вдруг возвращают управление.
Старый код который собирался и работал либо уже не собирается, либо собирается, но не пускается на старых системах, либо работает не корректно и надо отлавливать новые баги.
По умолчанию оно генерит бинарники не совмистимые с winxp и даже линковщику нельзя указать версию winxp только через editbin. Поэтому всё что будет собираться без будет без поддержки winxp.
«Visual Studio 2017 умеет собирать под WinXP при использовании тулсета v141_xp» — его специально сделали таким кривым?
Ладно microsoft, но кроме visual studio есть другие компиляторы. Так вот они наотрез отказываются под winxp компилить и пускаться. К чему бы это? Такая зависимость сильная зависимость от AVX или все резко осознали что без conditional_variables жини нет?
На древнем C можно под любую кофеварку бинарник собрать, в тоже время современный C++ ограничивает только популярными платформами, C++11 под WinXP уже не работает. Т.к. все используют инструменты которые так или иначе собираются C++ то это очень похоже на целенаправленный механизм выдавливания старых платформ. Например PHP и cygwin уже не пускается под XP, хотя особых оснований для этого нет. Собственно это еще одна из причин по которой на новые версии C++ не привлекательны.
Побывали переименовывать файлы в nautilus по F2 так что бы в новом названии появились как русские так и латинские буквы? ( например 123.txt -> 01-файл-readme.txt ) И какие при этом возникали эмоции?
И где обещеный опыт? Как у вас работает bluetooth при сопряжении устройства и последуещем уходе в спячку и возвращении обратно? Повесть о подключнии принтера и настройке сетевой шары. Как запускали Skype. На что заменили «чудо» аудиоплеер rhythmbox. Как подключали внешний монитор. Как настраивали удалённый доступ…
Обычно проводят множество экспериментов с разными данными и на разных машинах и потом усредняют и получают данные с доверительными интервалами. У вас на графиках погрешностей что-то не видно.
Современные процессоры не так просты как может показаться: Сache, Branch prediction, AMD SenseMI, ...
Так что в вашем частном случаем может и быстрее. А если еще использовать и возможности современных процессоров то можно сделать еще быстрее. Но на теоретическую асимптотику это не повлияет.
С другой стороны сортировка пирамидой имеет очень простой алгоритм и понятную асимптотику
А gradle это минимум 2Гб оверхеда и медленная сборка. AndroidStudio это минимум 3Гб RAM но лучше больше, гиг триграм и других индексов.
а тут слил с флешки 14Мб, распаковал, написал
./ma init-app myapp
./ma build myapp
./ma install myapp
и оно на телефоне и сборка myapp занимает 2сек.
если надо по классам поискать, то весь индекс по всему андройду занимает ~160кб.
./ma find-class Intent | grep android
android.app.IntentService
android.app.PendingIntent
android.app.PendingIntent$CanceledException
android.app.PendingIntent$OnFinished
android.content.Intent
android.content.IntentFilter
android.content.IntentFilter$AuthorityEntry
android.content.Intent$FilterComparison
android.content.IntentFilter$MalformedMimeTypeException
android.content.IntentSender
android.content.IntentSender$OnFinished
android.content.IntentSender$SendIntentException
android.content.Intent$ShortcutIconResource
android.content.pm.LabeledIntent
android.provider.ContactsContract$Intents
android.provider.ContactsContract$Intents$Insert
android.provider.Contacts$Intents
android.provider.Contacts$Intents$Insert
android.provider.Contacts$Intents$UI
android.speech.RecognizerIntent
android.speech.RecognizerResultsIntent
./ma show-class android.content.Intent | grep put | grep double
public android.content.Intent putExtra(java.lang.String, double);
public android.content.Intent putExtra(java.lang.String, double[]);
Да. То есть среда для ширпотреба, но для этого есть другие языки. более «безопасные» и «управляемые»
> читайте комментарии внимательнее
Внимательно прочитал EncodePinter/DecodePointer у которых жутко сложная реализация примерно такого вида ptr^=CONST очень сильно увеличивают безопасность и производительность и требуют «Minimum supported client: WindowsXP SP2»
«терять в производительности или безопасности для всех остальных пользователей — как-то глупо» и в каком месте выросла безопасность и увеличилась производительность?
Под линуксом такого безобразия нет как под виндой и там gcc работает и кроскомпилирует. А в винде нет.
«Речь идет про систему 16-летней» ага через 3года и на windows7 перестанет собираться. Хочется привести ссылку на https://geektimes.ru/post/281470/
Причем тут система, железо то тот же самое и форматы файлов те же. Почему вдруг появилась привязка к системе? Что такого требует «hello world» что ему мешает пускаться на winxp. Тут только одно объяснение — кому-то это выгодно.
Более того новые редакции C++ вводят эти самые deprecated и не очевидное поведение очень шустро. То что раньше можно было использовать становится UB. Уже кто-то говорил «В случае UB gcc старается генерировать максимально не корректный код». А чудеса оптимизации, когда бесконечные циклы вдруг возвращают управление.
Старый код который собирался и работал либо уже не собирается, либо собирается, но не пускается на старых системах, либо работает не корректно и надо отлавливать новые баги.
«Visual Studio 2017 умеет собирать под WinXP при использовании тулсета v141_xp» — его специально сделали таким кривым?
Ладно microsoft, но кроме visual studio есть другие компиляторы. Так вот они наотрез отказываются под winxp компилить и пускаться. К чему бы это? Такая зависимость сильная зависимость от AVX или все резко осознали что без conditional_variables жини нет?
Современные процессоры не так просты как может показаться: Сache, Branch prediction, AMD SenseMI, ...
Так что в вашем частном случаем может и быстрее. А если еще использовать и возможности современных процессоров то можно сделать еще быстрее. Но на теоретическую асимптотику это не повлияет.
С другой стороны сортировка пирамидой имеет очень простой алгоритм и понятную асимптотику