Из записок на языке Эразма Роттердамского.
Сделали sandbox на новеньком сервере, стали запускать тесты — половина не работает. Вместо ok видим wanted a data type, got `i8'. Кто говорит? Слон? Ошибку можно разглядеть в XML, который как-то где-то формируется через третьи руки. Разумеется, автор кода на этой неделе в отпуску, поэтому тратим еще час на то, чтобы выяснить, что сообщение об ошибке формирует модуль RPC::XML.
Мы-то уже догадались, что i8 — скорее всего тип целочисленных данных, потому что в стандарте есть тип i4, но про i8 там ни слова.
Еще какое-то время, и выясняется, что на другом сервере такой ошибки нет. Остается догадаться посмотреть $RPC::XML::VERSION. Ну точно, в одном месте — 1.36, в другом — 1.41.
Читаем документацию и удивляемся: тип i8 добавлен как нестандартный. Потому что им уже кто-то пользуется. Смотрим на спан и удивляемся еще раз: последняя версия там — 0.70. Ij? (в русской раcкладке — шо?) Может github? Там тоже 0.70. Начинаем подозревать всех в том, что они втихаря переписывают модуль прямо на серверах. Но в итоге смотрим в исходник версии 0.70 и видим, что версия модуля — 1.50. Релаксируем.
Прочитал как «RPC::XML _vs_ XXX», и задумался, каким боком вы используете RPC::XML для дебажной печати %)