gdzie jest dobry tutorial na temat tworzenia pakietu R z kodem źródłowym C++? [zamknięte]

Jestem w rozsypce, kiedy zaczynam szukać skryptów configure. Nie jestem pewien, jak stworzyć pakiet R, który ma kilka funkcji zbudowanych z C / C++ w taki sposób, że jest przenośny między Windows i Linuksem. Moje próby modyfikacji wnętrzności istniejących pakietów były bezowocne.

Każda pomoc lub linki będą bardzo mile widziane.

Update: If possible I would like to link against: Boost , CUDA , & hwloc

Zdaję sobie jednak sprawę, że Boost będzie koszmarem i hwloc nie będzie dużo lepszy. Więc zadowoliłbym się tylko CUDĄ. To dlatego zanurkowałem w głębokim końcu i próbowałem zmodyfikować niektóre istniejące pakiety do moich potrzeb (rgl & rglpk). Ale jestem gotów zacząć bez zależności i budować od podstaw. Dziękujemy wszystkim za sugestie!!

Author: M. Tibbits, 2011-03-02

2 answers

Zgubiłem się również podczas pisania mojego pierwszego pakietu ze skompilowanym kodem. Oto kilka wskazówek, ale prawdopodobnie jest tam lepszy materiał.

Głównym artykułem o pisaniu pakietów R jest "pisanie rozszerzeń R". Jest to bardzo kompletny przewodnik, ale również sprawia, że abit trudno przeczytać: http://cran.r-project.org/doc/manuals/R-exts.pdf

Oto mały tutorial, który znalazłem kiedyś w google, którego użyłem jako pierwszy, zawierający jak korzystać z kodu C: http://www.stat.columbia.edu/ ~ gelman/stuff_for_blog / AlanRPackageTutorial.pdf

Kolejny poradnik o pakietach R w ogóle, ale nie o kodzie C: http://cran.r-project.org/doc/contrib/Leisch-CreatingPackages.pdf

Rcpp jest to bardzo przydatny pakiet dla kodu C++, ale nie używałem go zbyt często (w rzeczywistości 3 dni). Zawiera wiele dokumentacji w samym pakiecie.

 22
Author: Sacha Epskamp,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-10-08 18:45:29

Moim domyślnym podejściem jest dowiedzieć się, jak inni rozwiązali problem. Istnieje ponad 2800 pakietów CRAN, a wiele z nich istnieje od ponad dekady. Problem można rozwiązać i został rozwiązany.

Prawdą jest również to, że dokumentacja tam jest, ale może jest zbyt rozproszona. Co więcej, cele się zmieniają. Na przykład lata temu nadal używaliśmy src/Makefile, obecnie jest to bardzo zalecane przeciwko ze względu na potrzebę kompilacji multiarch (na OS X, na Windows i pewnego dnia również na Linuksie).

Więc próba uproszczenia pomaga. W rzeczywistości możesz mieć poprawny projekt C++... bez niczego. Po prostu wrzuć pliki źródłowe do src/ twojego pakietu foo, A R będzie wiedział jak zbudować libfoo.so lub libfoo.dylib lub ..., w zależności od platformy. A jeśli potrzebujesz innych plików nagłówkowych, spróbuj użyć src/Makevars. Dla zewnętrznych zależności staje się trudniejsze i jedno, czego trzeba się nauczyć autoconf i in., ale wiele pakietów skacze z czymś prostym.

Więc proszę Rozwiń swoje pytanie, pokaż, co się nie udaje i udokumentuj, co próbowałeś. Jestem pewien, że możemy Ci pomóc.

Edit: i jeśli chcesz to zrobić z pakietem Rcpp (który pomaga w integracji R I C++), to istnieje Cała winieta, która zrobi to w twoim własnym pakiecie .

Edit 2: Teraz, gdy rozszerzono twoje pytanie, CUDA jest zupełnie inną bestią. To jest trudniejsze jak mieszasz różne Kompilatory itp. Są dwa przykładowe pakiety na Cran, zbadaj to.

 15
Author: Dirk Eddelbuettel,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-03-02 21:30:47