0xd34df00d 13.11.2012 10:28 Azoth_mac

Посоны, помогите ошику исправить позязя: http://bpaste.net/show/HMbOlfO4DcL8mA7pR...

Recommended by:

@pooq: моча съела говно

and @ruda
1. Rayslava 13.11.2012 10:29 346891887135277899465662

А НЕХУЙ БУСТ НЕСТАБИЛЬНЫЙ СТАВИТЬ!

2. 0xd34df00dRayslava /1 13.11.2012 10:29 Azoth_mac

В HOMEBREW УЖЕ ЕСТЬ

3. Like-all 13.11.2012 10:29 rzkPhone II

Найс.

4. z56371410 13.11.2012 10:30 Psi+

Святые хуи из преисподней.

5. 0xd34df00dz56371410 /4 13.11.2012 10:30 Azoth_mac

Я люблю йбаццо^W Boost. Хотя один хуй.

6. 0xd34df00dLike-all /3 13.11.2012 10:30 Azoth_mac

Нет :(

7. kb 13.11.2012 10:42 Azoth

/usr/local/include/boost/fusion/container/list/cons.hpp:99:32: error: no matching function for call to 'begin'
, cdr(fusion::next(fusion::begin(seq)), mpl::true_()) {}
^~~~~~~~~~~~~

8. 0xd34df00dkb /7 13.11.2012 10:43 Azoth_mac

Это же из кода бустца.

9. hirthwork 13.11.2012 13:04

А где код-то, который исправить?

10. zamotivator0xd34df00d /8 13.11.2012 15:09

Ты бедному begin не cons подсунул в seq, а хуйню какую-то

11. 0xd34df00dzamotivator /10 13.11.2012 15:17 Azoth_primary

offending-строчке (и файле) нет ни единого вызова begin(). Если что, ругать идет на строчку, строящую грамматику как ItemEnd_ = qi::lit ("END:") >> qi::lit (qi::_r1) >> '\n';
И судя по тому, что на всех прыщемашинах это конпелируется на ура, проблема в макобусте.

12. zamotivator0xd34df00d /11 13.11.2012 15:35

Сверь версии

13. 0xd34df00dzamotivator /12 13.11.2012 15:35 Azoth_primary

1.52 везде. А, ну и на макомашине еще clang, да, патченный эпплом во все щели.

14. kb0xd34df00d /13 13.11.2012 15:36 Azoth

расскажи, чем всё кончится, в общем.

15. 0xd34df00dkb /14 13.11.2012 15:37 Azoth_primary

Пока кончилось тем, что я отключил ненужный модуль.
Кстати, с Boost 1.51 тоже были проблемы, но тогда они решились добавлением recursive_wrapper где-то внутри бустца, не помню уже.

16. kb0xd34df00d /15 13.11.2012 15:43 Azoth

интересно, а как такое вообще дебажить? есть ли способ запринтовать вывод типа или что-то в этом духе?

17. zamotivatorkb /16 13.11.2012 15:49 t510B9190319

форсировать инстанцирование промежуточных типов.
А по уму если — не использовать такое.

18. 0xd34df00dzamotivator /17 13.11.2012 15:49 Azoth_primary

Бузд не использовать?

19. zamotivator0xd34df00d /18 13.11.2012 15:50 t510B9190319

нет, не использовать boost.fusion/boost.mpl/boos.spirit

20. 0xd34df00dzamotivator /19 13.11.2012 15:50 Azoth_primary

Почему? А что вместо?

21. zamotivatorzamotivator /19 13.11.2012 15:50 t510B9190319

сам буст использовать

22. zamotivator0xd34df00d /20 13.11.2012 15:50 t510B9190319

потому что наебёшься и напляшешься.

23. kbzamotivator /17 13.11.2012 15:52 Azoth

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

24. zamotivatorkb /23 13.11.2012 15:53 t510B9190319

приведите код с проблемой, я скажу как.

25. zamotivatorkb /23 13.11.2012 15:53 t510B9190319

начать можно с того, что подготовить отдельный cpp-файл с минимальным примером с проблемой

26. zamotivator 13.11.2012 15:54 t510B9190319

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

27. kbzamotivator /24 13.11.2012 15:55 Azoth

ну я конкретно про код из /0, какие шаги (кроме отключения модуля) стоит применять, чтоб найти ошибку?

28. 0xd34df00dzamotivator /24 13.11.2012 15:55 Azoth_primary

https://github.com/0xd34df00d/leechcraft... строки 113-117.
Извини за неминимальность, я щас не у мака уже.

29. zamotivatorkb /27 13.11.2012 15:55 t510B9190319

я в /0 никакого кода не видел

30. zamotivator0xd34df00d /28 13.11.2012 15:57 t510B9190319

конструкция, что на 103 строке начинается — для начала убрать <<; разбить на отдельные токены, посомтреть, собирается ли
Минимизировать конкретный токен.
В итоге переходя от базовых конструкций до составных ты найдёшь проблемное сочетание

31. 0xd34df00dzamotivator /30 13.11.2012 15:59 Azoth_primary

Проблемное сочетание в qi::string (qi::_r1), это я уже проверил.

32. zamotivator0xd34df00d /31 13.11.2012 16:01 t510B9190319

а если всякие "END: " убрать?

33. 0xd34df00dzamotivator /32 13.11.2012 16:02 Azoth_primary

Проверял, те же ошибки.

34. zamotivator0xd34df00d /33 13.11.2012 16:04 t510B9190319

а если в отдельный файл без всего вытащить?

35. 0xd34df00dzamotivator /34 13.11.2012 16:04 Azoth_primary

Это я еще не пробовал, лол. Попробую завтра на парах.

36. kb0xd34df00d /31 13.11.2012 16:12

да, собственно, интересует, что делать дальше? (кроме как тыкать туда-сюда компилируется-некомпилируется)

то есть, по сути, нам необходимо найти вот здесь
/usr/local/include/boost/fusion/container/list/cons.hpp:99:32: error: no matching function for call to 'begin'
, cdr(fusion::next(fusion::begin(seq)), mpl::true_()) {}
тип переменной seq, и понять, почему fusion::begin для него не определен. там мы уже и минимальный пример сможем создать и так далее. но как это сделать? (найти тип в момент компиляции)

37. 0xd34df00dkb /36 13.11.2012 16:13 Azoth_primary

Файлить багу на шланг скорее.

38. kb0xd34df00d /37 13.11.2012 16:14 Azoth

чё? да нет же. я не про шланг и не про еще что-то. я про то, как багу вообще найти.

39. zamotivatorkb /36 13.11.2012 16:15 t510B9190319

похоже какая-то хуйня с namespace resolution.
Надо вытащить в отдельный файл и попробовать всё тоже самое с using namespace по все поля
Скорей всего понадобится что-то типа using boost:fusion::begin или что-то типа

40. 0xd34df00dkb /38 13.11.2012 16:15 Azoth_primary

А с чего ты взял, что бага в этом коде или в бусте?

41. zamotivator0xd34df00d /40 13.11.2012 16:16 t510B9190319

вполне может быть, что со strict точки зрения шланг прав.

42. 0xd34df00dzamotivator /41 13.11.2012 16:17 Azoth_primary

Я гонял код с -pedantic -Wall (хотя это не аргумент, конечно).

43. zamotivator0xd34df00d /42 13.11.2012 16:17 t510B9190319

не аргумент

44. kbzamotivator /39 13.11.2012 16:17 Azoth

я понимаю, но мне это не интересно :) интересен гарантированный метод ловли таких багов, кроме как тыканиями.

45. kb0xd34df00d /40 13.11.2012 16:18 Azoth

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

46. kbkb /45 13.11.2012 16:18 Azoth

s/стек трейсе/выводе компилятора/

47. zamotivatorkb /44 13.11.2012 16:18 t510B9190319

нормальный способ. Редуцируешь пример до просто и понятного
При ловле runtime ошибок редуцируется runtime пример, а тут редуцируется пример для компиляции

48. kbzamotivator /47 13.11.2012 16:19 Azoth

ну это тоже понятно. ладно, в общем, наверное лучше читать доки к компиляторам, т.к. это возможности скорее их будут (типа дебаг вывода типов и т.п.). просто интересно было вскользь узнать, есть ли что подобное.

49. zamotivatorkb /48 13.11.2012 16:20 t510B9190319

в настоящий момент доступный дебаг — только редукция примера до минимального

Do you really want to delete ?