армовских процах?
Мне тут пакет из CRAN снести хотят из-за ошибки на M1. Причём ошибка не в моём пакете, а в iconv, который вызывается во время теста.
Куда ему там 4 гига аллоцировать понадобилось ума не приложу.
Ссылка на результаты тестирования в CRAN: https://www.stats.ox.ac.uk/pub/bdr/M1mac/uchardet.out
Ссылка на исходный код проекта: https://gitlab.com/artemklevtsov/uchardet
Код:
install.packages("uchardet")
file_path <- system.file("examples", "ko.txt", package = "uchardet")
x <- readChar(file_path, file.size(file_path))
iconv(x, "utf8", "iso-2022-kr")
я сталкивался с таким, и просто выключал проверку примеров на CRAN
А твой пакет вслед за моим снесут...
да? Мне никто не писал пока
тот мой пакет не единственный пакет, что я написал
Артем, M1 под руками нет. Рвет только на строчке `iconv(ko_utf8`? самого файла для чтения не нашел в репозитории. может тест временно приглушить до разбора? Может кто на маке может попробовать запустить тесты? Тут ведь многие про наличие M1 говорили…
Файл вот этот. https://gitlab.com/artemklevtsov/uchardet/-/blob/devel/inst/examples/ko.txt?ref_type=heads > system.file("examples", "ko.txt", package = "uchardet") [1] "/home/***/R/x86_64-pc-linux-gnu-library/4.3/uchardet/examples/ko.txt"
просто бесконечная вариативность ОС, версий пакетов и косяков заставляют сидеть на гитхабе добрую часть времени и читать код. иногда дешевле и проще вбить воркараунд и двинуться дальше, чем долбить головой стену. а попозже разобраться.
Да, ошибка воспроизводится: > file_path <- system.file("examples", "ko.txt", package = "uchardet") > x <- readChar(file_path, file.size(file_path)) > iconv(x, "utf8", "iso-2022-kr") Ошибка в iconv(x, "utf8", "iso-2022-kr") : could not allocate memory (4095 Mb) in C function 'R_AllocStringBuffer' К сожалению не занимался никогда дебагом в R, но, если подскажете что сделать, попробую.
Спасибо за участие. Ещё попробуй, пожалуйста, выполнить команду в баш терминале (не R): iconv -f UTF-8 -t ISO-2022-KR $(Rscript -e 'cat(system.file("examples", "ko.txt", package = "uchardet"))') Надо понять, где именно проблема: в реализации iconv под арм или в R.
Ну вот как я и написал выше: штатный виснет, сторонний iconv — работает: ~/miniforge3/envs/py311/bin/iconv -f UTF-8 -t ISO-2022-KR $(Rscript -e 'cat(system.file("examples", "ko.txt", package = "uchardet"))') )C3*4B @/8.8& 8T@; <v @V>n?d. 1W7!55 >FGAAv >J>F?d
Да да, я пока своё сообщение писал, не обратил внимание, что ты уже сделал то, что я хотел попросить.
Похоже современные macOS препятствуют дебагу системных приложений. Как я ни пытался прицепить lldb к зависшему iconv — бесполезно. "System binaries are always codesigned by Apple and generally don't have that entitlement, and so can't be debugged. If you really need to debug a system binary you have to turn off SIP." как тут пишут: https://stackoverflow.com/questions/76747436/m2-macos-13-4-1-use-lldb-debug-c-program-terminated-by-signal-5 по сходной проблеме. Так что даже копнуть iconv не вышло...
Вполне предсказуемо: закрытая экосистема. Под предлогом обеспечения безопасности системы ограничили любую несанкционированную активность. Вроде реализацию unzip в R можно стороннюю указать, а вот iconv вряд ли.
Обсуждают сегодня