Pull to refresh
-17
0.3
Send message
Тоже писал подобное. Весь 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?
Было бы круто если бы так работало
struct Fn {
    int x; enum { B0=1, B1=2, B2=4, B3=8 };
    operator int () { return x; }
};

int z=Fn{ .x=B2|B3 }
> замените слово «аудитории» на «платформ/операционных систем/сред исполнения», надеюсь, смысл фразы станет понятнее.
Да. То есть среда для ширпотреба, но для этого есть другие языки. более «безопасные» и «управляемые»

> читайте комментарии внимательнее
Внимательно прочитал 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 старается генерировать максимально не корректный код». А чудеса оптимизации, когда бесконечные циклы вдруг возвращают управление.
Старый код который собирался и работал либо уже не собирается, либо собирается, но не пускается на старых системах, либо работает не корректно и надо отлавливать новые баги.
Почувствовал
А что должен вернуть такой код на разных редакциях C++
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

void operator delete(void* ptr) { free(ptr); }
void* operator new(size_t sz) {
    void *dst=malloc(sz);
    if (dst) memset(dst,0xFF,sz);
    return dst;
}

struct A { int x; };

struct B : A { A a; int y; };

int main(int argc,char** argv) {
    A *a=new A();
    B *b=new B();

    printf("a->x=%d\n",a->x);
    printf("b->x=%d\n",b->x);
    printf("b->y=%d\n",b->y);
    printf("b->a.x=%d\n",b->a.x);

    delete b;
    delete a;
}
Теперь можно объявлять вот такие фунцкии:
struct Add {
    double x=0, y=0;
    operator double () { return x+y; }
};

double z=Add{ .y=20, .x=10 };
По умолчанию оно генерит бинарники не совмистимые с 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++ не привлекательны.
Лучше покажите как строятся «хорошие программные модули» на современном C++
Почему в pdf для этого же есть djvu
Побывали переименовывать файлы в nautilus по F2 так что бы в новом названии появились как русские так и латинские буквы? ( например 123.txt -> 01-файл-readme.txt ) И какие при этом возникали эмоции?
И где обещеный опыт? Как у вас работает bluetooth при сопряжении устройства и последуещем уходе в спячку и возвращении обратно? Повесть о подключнии принтера и настройке сетевой шары. Как запускали Skype. На что заменили «чудо» аудиоплеер rhythmbox. Как подключали внешний монитор. Как настраивали удалённый доступ…
А какие у вас размеры WAR файлов в гигабайтах?
Обычно проводят множество экспериментов с разными данными и на разных машинах и потом усредняют и получают данные с доверительными интервалами. У вас на графиках погрешностей что-то не видно.

Современные процессоры не так просты как может показаться: Сache, Branch prediction, AMD SenseMI, ...
Так что в вашем частном случаем может и быстрее. А если еще использовать и возможности современных процессоров то можно сделать еще быстрее. Но на теоретическую асимптотику это не повлияет.

С другой стороны сортировка пирамидой имеет очень простой алгоритм и понятную асимптотику
struct PSort {
	virtual void swp(int i,int j)=0;
	virtual void cmp(int i,int j)=0;
	void  psort(int n) { // O(n*ln(n))
		int i,r,c;
		for(i=n/2;i>=0;i--) { pfix(i,n); }
		for(i=n-1;i>=0;i--) { swp(0,i);pfix(0,i); }
	}
	void pfix(int i,int n) {
		int c,r;
		for(r=i;r*2<n;r=c) {
			c=r*2; if (c<n-1 && cmp(c,c+1)<0) c++;
			if (cmp(r,c)>=0) break; swp(r,c);
		}
	}
};

Information

Rating
2,345-th
Registered
Activity