>>просто, насколько я помню, можно даже -O9 ставить... можно, но конкретно в gcc, все это будет равнозначно -O3. возможно, эти ключи нужны для других компиляторов С
> вы гентушник???
Я гентушник. и что?
> просто, насколько я помню, можно даже -O9 ставить...
мы можешь хоть головой об стенку биться.
Просто перед тем, как что-то сказать, подумай много-много раз.
void
decode_options (unsigned int argc, const char **argv)
{
unsigned int i, lang_mask;
/* Perform language-specific options initialization. */
lang_mask = lang_hooks.init_options (argc, argv);
lang_hooks.initialize_diagnostics (global_dc);
/* Scan to see what optimization level has been specified. That will
determine the default value of many flags. */
for (i = 1; i < argc; i++)
{
if (!strcmp (argv[i], "-O"))
{
optimize = 1;
optimize_size = 0;
}
else if (argv[i][0] == '-' && argv[i][1] == 'O')
{
/* Handle -Os, -O2, -O3, -O69, ... */
const char *p = &argv[i][2];
if ((p[0] == 's') && (p[1] == 0))
{
optimize_size = 1;
/* Optimizing for size forces optimize to be 2. */
optimize = 2;
}
else
{
const int optimize_val = read_integral_parameter (p, p - 2, -1);
if (optimize_val != -1)
{
optimize = optimize_val;
optimize_size = 0;
}
}
}
}
И при необходимости читать, что такое optimization flags и для чего оно надо.
P.S. если я где неправ или что-то неправильно понял - ткните носом.
> Я гентушник. и что?
Заметно.
Теперь алгоритм такой запустить команду
grep -w -r "optimize" . | less
в каталоге с исходниками gcc, смотреть, думать, повторять до просветления.
Удачи.
Опции -Ox обрабатываются там, где я показал (как я это понимаю).
Кто-то из нас даже не поленился полезть в сорсы и непосредственно показать, где это происходит.
Теперь прошу показать, где именно я ошибаюсь, потому как рыться в такой куче crap-a я желания не имею. Сам посмотри, какой выхлоп дает grep -w -r "optimize" . | less Просветляться таким образом явно не самое логичное.
P.S. Я в свое время специально полез в сорсы гцц, чтобы понять, есть ли смысл в чем-то бОльшем нежели -O3 Я его не нашел. Если я неправ - покажи. Я только признателен буду, чесслово :)
Язык не устоялся, до сих пор вносятся серъезные изменения, вспомнить хотя бы decorators и new-style classes (не в 2.4, а вообще что в голову пришло).
Вообще, языку не помешала бы вторая более-менее равноправная реализация (но это уже вряд ли возможно, если только IronPython со временем станет), например с встроенной поддержкой легковесных нитей. Была отличная идея stackless python, но тогда перенос на другие платформы становился гораздо более трудоеемким и ее отвергли.
Если интересно, также советую поискать на python.org по слову Python 3000 или 3.0.
>O3 зарезервираванно для будущегог (точно про ветку 3x, 4 еще не смотрел)
Что касается оптимизаций, все эти Ox это просто некий набор из коробки флагов оптимизации, т.е. O3 это почти все что может быть ;)
Да и вообще, разве эта оптимизация дает что-то?.. Нет, я понимаю, есть задачи на которых эти 1-5 процентов очень критичны (мат расчеты больших размеров), но, извените не на десктопе ;) (хотя сам гентушник, и у самого в CFLAGS стоит -O9... со времен когда игрался с оптимизацией...)
Кстати, что еще интересно, если криво выстовить флаги, то emacs не собирается ;)