пʼятниця, 7 січня 2011 р.

R під Macports

R використовує рідні бібліотеки OS X (libJPEG, libLAPACK, veclib і т.ін.). Проблема виникає, коли DYLD_LIBRARY_PATH містить стежку до бібліотек Macports. Тоді R не може завантажити деякі бібліотеки. Здається, DYLD_LIBRARY_PATH не потрібен для R. Якщо цю змінну прибрати з ldpaths, що розташований у /opt/local/lib/R/etc/x86_64, то R працюватиме коректно.

неділя, 24 жовтня 2010 р.

Sleipnir та boost::regex

Sleipnir/stdafx.h містить макрос

#define strcpy_s(a,b,c) strcpy(a,c)

Цей макрос ламає boost::re_detail::strcpy. Тому включення boost/regex.hpp має завжди бути до включення Sleipir/stdafx.h

четвер, 20 травня 2010 р.

Посилання

Майже всі хеші та масиви у GBrowse доступні через посилання. Наприклад, настройки у html1 можно дістати наступним чином.


html1 = sub {
my $txt;
my $cfg = $_[1];
while (my ($key, $value) = each(%$c)) {
$txt .= "$key : $value";
}
return $txt;
}

Як сховати стежку у GBrowse

Howto стверджує, що за це відповідає параметр visible. Можливо так і є у версіях 2.х, але у 1.70 має бути 'hide = 1'

пʼятниця, 26 березня 2010 р.

libjpeg на Леопарді

Дуже багато часу змарнував з цим libjpeg'ом. Помилки бувають різні, але переважно компілятор скаржиться що якась функція відсутня у /usr/local/lib/libJPEG.dylib. Леопард має свої вбудовані бібліотеки для зображень і вони розташовані у /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ImageIO.framework/Versions/A/Resources. Проте всі вони мають одну осбливість: назва після lib йде великими літерами. Наприклад, libJPEG.dylib або libTIFF.dylib. Бібліотеки досить старі і побудовані під Леопард, тому в них є деякі функції, що відсутні у стандарних версіях доступних до завантаження. Якщо стандартні версії встановлені у /usr/local/lib та змінні LD_LIBRARY_PATH і DYLD_LIBRARY_PATH вказують на ту директорію, компілятор використовуватими неприйнятну версію. (Нагадаю, що типова файлова система під Леопардом не залежить від реґістру; тому libjpeg.dylib та libJPEG.dylib не відрізняються.) У таких випадках перед компілюванням треба додати стежку до Леопардівських бібліотек.

export LD_LIBRARY_PATH=/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ImageIO.framework/Versions/A/Resources:$LD_LIBRARY_PATH
export DYLD_LIBRARY_PATH=$LD_LIBRARY_PATH


Джерело натхнення: http://tolstoy.newcastle.edu.au/R/devel/05/05/0755.html

неділя, 21 лютого 2010 р.

libsequence та прапорці

Чомусь libsequence ігнорує змінні середовища. Заміст

export CFLAGS="-arch x86_64"
./configure

має бути

./configure CFLAGS="-arch x86_64" CPPFLAGS="-arch x86_64" \
CXXFLAGS="-arch x86_64" LDFLAGS="-arch x86_64"

Boost

Треба було скомпілювати Boost під Дарвіном. Щоб не думати що там обере лінкер під час запуску, хотілось виключно 64-бітну версію і лише для Інтел. Документація на сайті чомусь не дуже. Щонайменше у мене недостатньо досвіду, щоб зрозуміти, що саме вони мають на увазі. Отже...

./bootstrap --with-libraries=regex,filesystem,iostreams
sudo ./bjam link=static threading=multi architecture=x86 \
address-model=64 install

Опції:

link={static|shared}
architecture={ppc|x86|combined}
address-model={32|64|32_64}