alogic: (war)
alogic ([personal profile] alogic) wrote2016-09-16 03:39 am
Entry tags:

Haskell и смартфон

Купил за $122 смартфон Lenovo K80M с 4Гб оперативки, 64Гб карты памяти и Intel процессором. Везли из Китая почти месяц. Вот, думал, теперь можно будет Haskell компилировать сколько хочешь. Планшет Dell Venue 7 со своим 1Гб уже не тянет. Однако, не тут то было. Поставил GNU Root Debian, но все сборки GHC - 7.8.4, 7.10.3, 8.0.1 - выдают:

ghc: failed to create OS thread: Cannot allocate memory

В Гугле говорят про какой-то SELinux и что это из-за него. Так что осталась надежда, что получив права root проблему можно будет решить.

Update: Проблему решило
ulimit -s 820000

[identity profile] link0ff.livejournal.com 2016-09-16 07:17 pm (UTC)(link)
У меня был смартфон Lenovo ровно 10 лет назад - единственным недостатком было отсутствие Андроида в то время :)

Насчет "Cannot allocate memory" у меня была такая проблема, когда я запускал Erlang на shared hosting виртуалке. Чтобы разобраться в проблеме, я скомпилировал виртуальную машину Erlang, запустил под дебаггером, и выяснилось, что проблема в значениях ulimit! Попробуй поднять все лимиты "ulimit -a", и у тебя должно получиться запустить GHC.

[identity profile] alogic.livejournal.com 2016-09-17 05:24 am (UTC)(link)
Спасибо! Как ни странно, сработало понижение. Там стояло 2359296, а запустилось при
ulimit -s 820000

Ещё `git` ошибку с тредами выдавал. Пришлось сделать
git config --global pack.threads "1"

[identity profile] link0ff.livejournal.com 2016-09-17 09:49 am (UTC)(link)
Может логика такая: меньше памяти для стека - при том же общем размере даёт больше памяти для кучи (heap).

[identity profile] alogic.livejournal.com 2016-09-18 05:52 am (UTC)(link)
Очень может быть. Посмотрел, кстати, что дают на бесплатном сервере https://sagemath.com -- какие-то скромные 8Мб под стек и всё отлично компилиуется.
Edited 2016-09-18 05:52 (UTC)