LINUX.ORG.RU

Вышел GCC 3.3.3.


0

0

Очень символично сообщество GNU решило отметить праздник св. Валентина... Выходом GCC 3.3.3. Исправлено ощутимое количество багов, в основном Internal compiler errors и ошибки в C++ compiler and library.

>>> Changelog



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

>Не пизди раньше времени

>Сановским компилером это тоже не соберётся ... по той же причине

>Есть конструктор string(char), который всё и портит :)
>Догадайся сам, почему 

1.
forte не собирает даже такой класс
class A
{
    operator int () const;
    operator short () const;
};

там никаких string'ов не надо.

2. В моем коде конструтор для стринга вызывался один раз, так что или поучи c++ и stl, лоровский пустобрех.

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

> Чего то я не понял. Когда он вышел ??? 
очередной долбо@б

lftp -e ls sources.redhat.com/pub/gcc/releases/gcc-3.3.3
cd ok, каталог=/pub/gcc/releases/gcc-3.3.3
total 211312
drwxrwxr-x   2 9160     65516        4096 Feb 15 01:54 diffs
-rw-r--r--   1 9160     65516    23279245 Feb 14 21:31 gcc-3.3.3.tar.bz2
-rw-r--r--   1 9160     65516    30747783 Feb 14 21:26 gcc-3.3.3.tar.gz
-rw-r--r--   1 9160     65516     3518946 Feb 14 21:31 gcc-ada-3.3.3.tar.bz2
-rw-r--r--   1 9160     65516     4986695 Feb 14 21:26 gcc-ada-3.3.3.tar.gz
-rw-r--r--   1 9160     65516    11553433 Feb 14 21:32 gcc-core-3.3.3.tar.bz2
-rw-r--r--   1 9160     65516    15165280 Feb 14 21:27 gcc-core-3.3.3.tar.gz
-rw-r--r--   1 9160     65516     2074860 Feb 14 21:31 gcc-g++-3.3.3.tar.bz2
-rw-r--r--   1 9160     65516     2870146 Feb 14 21:26 gcc-g++-3.3.3.tar.gz
-rw-r--r--   1 9160     65516     1136316 Feb 14 21:31 gcc-g77-3.3.3.tar.bz2
-rw-r--r--   1 9160     65516     1479453 Feb 14 21:26 gcc-g77-3.3.3.tar.gz
-rw-r--r--   1 9160     65516     3634424 Feb 14 21:32 gcc-java-3.3.3.tar.bz2
-rw-r--r--   1 9160     65516     4609339 Feb 14 21:26 gcc-java-3.3.3.tar.gz
-rw-r--r--   1 9160     65516      206460 Feb 14 21:32 gcc-objc-3.3.3.tar.bz2
-rw-r--r--   1 9160     65516      254051 Feb 14 21:26 gcc-objc-3.3.3.tar.gz
-rw-r--r--   1 9160     65516     1076627 Feb 14 21:32 gcc-testsuite-3.3.3.tar.bz2
-rw-r--r--   1 9160     65516     1388459 Feb 14 21:26 gcc-testsuite-3.3.3.tar.gz
-rw-r--r--   1 root     65516         898 Feb 15 01:54 md5.sum

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

Блин, в есть что-то вроде Hardware-Problems HOWTO. Там все описано про якобы глючный gcc

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

> В моем коде конструтор для стринга вызывался один раз, так что или поучи c++ и stl, лоровский пустобрех.

Ну чё, дурень ? Продолжаем пиздеть, вместо того, чтоб ошибку в собственном коде(днк?) найти ??

Подсказка для тупых, оставь только один оператор приведения
пр:
operator int () const;

Собери и посмотри как работает ....

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

Вот уж хуй аврора крейсер, я могу делать столько операторов привидения типов, сколько хочу. И мы уклонились от темы gcc в сторону forte, у сановского компилера полно своих заморочек.

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

Как же до тебя трудно доходит-то
Я имел в виду именно gcc


>Вот уж хуй аврора крейсер, я могу делать столько операторов привидения типов, сколько хочу.

На здоровье, тогда придётся использовать явное приведение

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

Ну несколько непонятно почему надо оставлять только один оператор приведения? Или это уже в стандарте описано?

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

>Ну несколько непонятно почему надо оставлять только один оператор приведения? Или это уже в стандарте описано?


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

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

Как я и говорил ни один пиздобол с лора не смог объяснить почему собирается код gcc 3.2.x и не собирается 3.3.x. Какой-то анонист несет чушь про констурторы у std::basic_string'а, предлагает выкинуть нахуй операторы приведения типов и оставить один и т.п.

На самом деле все намного проще, серия 3.3.х более точно держит стандарт.

Присваивание значения типа V объекту класса X допустимо в том случае, если имеется оператор присваиваения X::operator = (Z) такой, что V является Z или существует ЕДИНСТВЕЕНОЕ преобразование из V в Z. В данном случае у класса basic_string существует 3 оператора присваивания для std::string, _CharT *, и _CharT. std::string параметризует basic_string обыкновынным char'ом, поэтому наш класс одновременно удволетворяет двум операторам = класса basic_string.

Так что идите учитесь, тов. мнимые программисты на c++.

PS: Sun Forte Developer вообще хуево держит стандарты, и про него разговор особый.

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

Прочитал таки книжку с картинками? Молодец - иди учись дальше. Терпенье и труд все перетрут.

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

>предлагает выкинуть нахуй операторы приведения типов и оставить один и т.п.

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

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

> "Присваивание значения типа V объекту класса X допустимо в том случае, если имеется оператор присваиваения X::operator = (Z) такой, что V является Z или существует ЕДИНСТВЕЕНОЕ преобразование из V в Z. В данном случае у класса basic_string существует 3 оператора присваивания для std::string, _CharT *, и _CharT. std::string параметризует basic_string обыкновынным char'ом, поэтому наш класс одновременно удволетворяет двум операторам = класса basic_string."


Это всё верно, но де там оператор преобразования из A в char или char* объявлен? Я его что-то в описании класса не вижу совсем.

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

> Это всё верно, но де там оператор преобразования из A в char или char* объявлен?

Ну дык срабатывает преобразование интегральных типов к char

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

Э-э-э...

$ cat /etc/slackware-version
Slackware 9.1.0
$ ls -la /usr/lib/i686
ls: /usr/lib/i686: No such file or directory

Кто-то кажется прогнал?

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

ути-пуси какие мы злые однако.

>хуй знает, только зачем ты спрашивал
чтобы показать, что лохи, которые тут обсуждают компиляторы ничего кроме чужих прог ими не собирали, и не знают сколько крови вложено в портирование на forte gcc 3.x.x, ACC. Ну типа тебя, короче.

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

>У меня железом всё ОК. Я не занимаюсь разгоном, не испорльзую VIA/AMD/SIS. Блок питиания у меня серверный за 80 баксов 450Вт. Явный брак в железе я в состоянии продиангностировать в течении дня посе покупки. Эта машина постоянно занимается кодированием видео. Сутками кодирует, никаих сигфолтов.

>lenin (*) (16.02.2004 20:23:47)

владимир ильич, батенька, нужно быть последовательным. зачем вы эмулируете какую-то поделку на zilog-e. интел так интел. даешь эмулятор радио-86рк с его i8080. ^)

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

2Dimez:

>ls: /usr/lib/i686: No such file or directory

>Кто-то кажется прогнал?

Это ты недогнал:)

Имелось ввиду, что /usr/lib/i686 мог появиться только при "установке всего ручками":)

В процессе подобных "установок" в слакваре обычно и рождаются подобные "расширения стандартов FHS":)

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

> Ну дык срабатывает преобразование интегральных типов к char

Мне сейчас неохота лезть искать в стандарте, но там, как я помню, есть ещё одно правило, что при преобразовании типа параметра к имеющейся сигнатуре ф-ии (в том числе и перегруженного оператора) не может использоваться более одного implicit либо user-defined преобразования типа. Так что в данном случае должно работать только преобразование в std::string и код совершенно правильный. Если я ошибаюсь насчёт стандарта, то поправьте.

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

> Так что в данном случае должно работать только преобразование в std::string и код совершенно правильный.

Нет. У класса basic_string определены сразу несколько операторов присваивания для которых одновременно подходят несколько операторов преобразования типов и с точки зрения компилятора все они равнозначны. Вот если бы был определен оператор присваивания класса А, то однозначности бы не возникло бы. А так нужно пользоваться явным приведением типа, например:

Test = static_cast<std::string>( a );

Так что оба грубых ананимуса правы :) К чему это только они написали? Это совершенно не говорит о том, что gcc3.3 нестабилен... Наоборот хорошо, что он более строго стал соблюдать стандарты...

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

4jackill:
>Причем тут сборка? Я не про сборку говорю.
>Собранная ищет там либу (не мной собранная).

А, да, пардон. Глаз зацепился за вывод компилятора (где был -L с этим каталогом), а слово "собранная" пропустил ;)

//Losiki

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

Собрал полностью Линукс с нуля с помощью GCC-3.3.1 - все работает отлично собирал с ключами: CFLAGS='-march=pentium4 -mcpu=pentium4 -O3 -mpfmath=sse -msse2 -pipe' CXXFLAGS='-march=pentium4 -mcpu=pentium4 -O3 -mpfmath=sse -msse2 -pipe'

Конфа ноута: Pentium-M 1500Ghz, 512Mb, 40Gb, ATI9000 64Mb, SXGA+. Ну я честно сказать - не знаю как это назвать, можть везенье? Или фиг его знает? Кто можть подскажет, а? :) если чаво мыльте: ruslan@iru.ru

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