ctags /usr/include 2Gb

slonishka

чуваки, а вы ваще /usr/include индексите?
мне просто удобно бывает говорить ] на незнакомых символах,
но бля, 2Gb индекс-файл это какой-то перебор ваще.
Upd: ну т.е. я там особо не курил опции, наверняка он всякие локальные переменные индексит
и отсюда такой размерище, но может все равно кто че-нибудь еще просветляющее скажет.

vall

откуда у тебя столько? у меня 23mb, а сам /usr/include на 40
у меня конечно толком ничего там нет, но я не представляю как 2gb тагов можно набрать

yolki

$ ctags --recurse /usr/include
Cannot shorten tag file: errno = 22
ctags кончил работать, когда насобирал индекс в 2ГБ.
$ du -sh /usr/include
410mb
может, оно циклится?

vall

что ты там такое хранишь?
du -s /usr/include/* | sort -n | tail

slonishka

а хер его знает, скорей всего я сам где-то мудак, конечно.
bugaga ~ $ du -sh /usr/include/
177M /usr/include/

я делаю вот так:
ctags -Rf ~/.vimvar/tag_linux /usr/*{,/}include `gcc-config -L`/include

может оно, кстати, из-за ебучего C++ набегает лол.
ну там вроде 8 метров всего... ладно, позырю еще вечерком.
у меня такое где-то полгода назад началось и я тогда зассал смотреть туда - удалил сразу нахуй,
а щас стал снова активней программировать и моментально почувствовал нехватку /usr/include-тегов.

slonishka

$ ctags --recurse /usr/include
Cannot shorten tag file: errno = 22
во, у меня вроде та же ботва была.
может, оно циклится?
а, да! на симлинке каком-нибудь, у меня их много там - гента ж.
ну или чего-нибудь связанное с _FILE_OFFSET_BITS, судя по магическому числу 2Gb.
ЗЫ:
$ du -sh /usr/include
410mb
зачот! я столько в лучшие годы не имел.

vall

о какая штука получилась
cat src/common-tags | awk '{ ; sub(/[^\/]*$/, "", $2) ; print $2 }' | sort | uniq -c | sort -n | tail
:grin:

slonishka

бля :grin:
item90 /usr/include/boost-1_42/boost/typeof/vector200.hpp /^ template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 > struct vector136 { typedef v_iter<vector136< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135>, boost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef P119 item119; typedef P120 item120; typedef P121 item121; typedef P122 item122; typedef P123 item123; typedef P124 item124; typedef P125 item125; typedef P126 item126; typedef P127 item127; typedef P128 item128; typedef P129 item129; typedef P130 item130; typedef P131 item131; typedef P132 item132; typedef P133 item133; typedef P134 item134; typedef P135 item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175;

vall

boost
я всё понял

vall

Я изобрел понятие «объектно-ориентированный», но могу заявить, что не имел в виду C++ при этом. //Alan Kay

slonishka

короче, я удалил симлинк boost -> boost-1_42 из /usr/include и могу после предыдущей цитаты понять, почему ему стало ЗНАЧИТЕЛЬНО легче. теперь он сгенерил здоровенный файлег на 800Мб, причем дольше всего он его сортировал, конечно. в принципе у меня своп отрублен, может ему просто памяти не хватает, чтобы два буста отсортировать. ну это вряд ли по идее, сортировка-то всякая бывает, я думаю, sort там по обстоятельствам действует.
блядь. кто вообще придумал буст? :grin: :grin:

slonishka

не, ну в принципе наверное какая-нить IDEA там менее ебанутые теги генерит для этого, то есть тут еще есть тот минус, что когда писали ctags, люди были добрее, трава зеленее, а буста еще не было и в проекте даже, но вообще я, конечно, с тобой согласен целиком и по. =)

vall

там написано что вся проблема в каталоге typeof, его можно отфильтровать стаговскими регуляраками.

slonishka

bugaga ~ $ cat .vimvar/tag_linux | awk '{ ; sub(/[^\/]*$/, "", $2) ; print $2 }' | sort | uniq -c | sort -n | tail
11452 /usr/include/xcb/
14057 /usr/include/openssl/
14219
15584 /usr/include/X11/extensions/
16253 /usr/include/wx-2.8/wx/
20391 /usr/include/qt4/Qt/
28170 /usr/include/linux/
37157 /usr/include/
104349 /usr/include/boost-1_42/boost/typeof/
144164 /usr/include/wine/windows/

что такое пустая строчка я не знаю, т.к. не понимаю язык awk. =)

slonishka

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

vall

104349 /usr/include/boost-1_42/boost/typeof/
144164 /usr/include/wine/windows/
не понятно, кто-же таки победил. вайн числом или буст размером. :grin:

slonishka

ПОБЕДИЛА ДРУЖБА! ОТФИЛЬТРУЮ ОБОИХ! :grin:
bugaga ~/.vimvar $ du -sh tag_*
96K tag_begun
43M tag_linux

ЛОЛ

yolki

пустая строка - это видимо сам /usr/include (stdio.h etc)

Serab

bugaga
бля, мое любимое название переменной!

Werdna

ПОБЕДИЛА ДРУЖБА! ОТФИЛЬТРУЮ ОБОИХ! :grin:
Ох, не зря я буст даже не сетапл в систему. Если исходникам нужен буст, то эти исходники идут за бустом в пешее бустовое...

slonishka

вот сравните, какой в соседних тредах флейм и какое у нас тут единодушие, а!
а все потому, что мы не боимся давить флеймера интеллектом.
спорят-то обо всякой хуйне-муйне дураки всякие. :D

okis

это потому что вы любите простоту в софте ;)

erotic

вот сравните, какой в соседних тредах флейм и какое у нас тут единодушие, а!
Только было я собрался поспорить с пианистом насчет велосипедов... Ну ладно, единодушие важнее:
НАХУЙБУСТ!

bleyman

А чем вам буст не нравится (кроме того, что ваши криворукие стэгс костыли работают с ним через жопу)?
Я вот тут сегодня использовал из него BOOST_STATIC_ASSERT и остался весьма доволен!

Werdna

Я вот тут сегодня использовал из него BOOST_STATIC_ASSERT и остался весьма доволен!
Ассёртами особенно не нравятся... :)

slonishka

Ассёртами особенно не нравятся...
это другой ассерт, пианист. =)

slonishka

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

apl13

кода много, зачем столько кода писать?
Раньше гораздо меньше кода было.

erotic

А чем вам буст не нравится
Мне нравится, но тут такой порыв единодушия!

vall

BOOST_STATIC_ASSERT? это BUILD_BUG_ON что-ли?
они даже его не смогли реализовать без плюсовых прибабахов?

slonishka

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

erotic

BUILD_BUG_ON
OMG, что это?

#define BUILD_BUG_ON_ZERO(e) (sizeof(struct { int:-!(e); }

Это типа кусок инта размером -!(e) бит, из которых "-" означает отрицательное число, а "!" - двойное отрицание? Т.е. если туда передать 0, то будет фейл. Если передать 1, то будет фейл. А если передать отрицательное число или false, то будет все ок?

slonishka

Т.е. если туда передать 0, то будет фейл
не будет, но это не важно.
детали реализации.
важно, что это хуйня, которая не билдится, если тру.
статик ассерт, короче.
читается "не соберись, если (предикат)"
например, не соберись, если (sizeof(u32) != 4)

Maurog

Т.е. если туда передать 0, то будет фейл. Если передать 1, то будет фейл
!0 = false
!x = true, если x != 0
!z = static_cast<bool>(z)
-true = -1;
-false = 0;
битфилд размера -1 нельзя определить
зы: структуру в С++ нельзя внутри sizeof определять вроде

slonishka

Раньше гораздо меньше кода было.
- а что за парадигма?
- парадигма? какая парадигма?
- что за парадигма программирования используется в этом коде?
- *начинает улыбаться и стучать по клавиатуре*

erotic

детали реализации
Это как раз и интересно. Что это в принципе означает - понятно.

erotic

битфилд размера -1 нельзя определить
А размера 0 можно? Забавно.

slonishka

А размера 0 можно? Забавно.
да, причем раньше (до c99) нельзя было и в основном статик_ассерт на сях писали примерно так же, но без минуса.
например, STATIC_ASSERT(e) m[!(e)]. может не совсем точно, но суть понятна.
Оставить комментарий
Имя или ник:
Комментарий: