Błąd #4393
fix build with swig 2.0.8
Status: | Nowy | Start date: | 09 Oct 2012 | |
---|---|---|---|---|
Priority: | Normalny | Due date: | ||
Assignee: | Adam Radziszewski | % Done: | 0% | |
Category: | - | |||
Target version: | - |
Description
Please see the attached tiny patch that resolves an issue with building corpus2 with swig 2.0.8 (at least).
History
#1 Updated by Anonimowy Użytkownik over 10 years ago
(As a side note: related info might be here: http://sourceforge.net/mailarchive/message.php?msg_id=29681916)
Best,
Milos Jakubicek
#2 Updated by Adam Radziszewski over 10 years ago
- Assignee set to Adam Radziszewski
Thanks for reporting, Miloš!
Paweł, dodałem Cię jako obserwatora. Mam prośbę: czy mógłbyś na to rzucić okiem i powiedzieć, czy pamiętasz coś podobnego? O ile pamiętam, walczyłeś kiedyś z podobnymi problemami. Czy mi się wydaje, czy kiedyś przenosiliśmy celowo te deklaracje %template na górę? Z tego załączonego linka wynika mi też, że nowsza wersja SWIG-a uznała wersję proponowaną przez Miłosza za błąd — ale może ja to źle rozumiem :-|
#3 Updated by Paweł Kędzia over 10 years ago
Z tego co pamiętam, to faktycznie przenosiliśmy templaty specjalnie na początek pliku. Tzn wydaje mi się, że w 2.0.8 ten patch Milosa zadziała, choć głowy uciąć nie dam. Z tym, że w załączonym linku jest odwrotne owrapowywanie: z pythona do c++. Być może są jakieś subtelne róznice, co w sumie byłoby dziwne... Najlepiej byłoby dorwać kompa gdzie jest najnowszy swig i sprawdzić, bo tak to trochę z fusów wróżymy ;)
Dodatkowo np. w Corpus2 otwieraliśmy jeszcze przestrzenie nazw dla typów użytych we wrapperze. Np. token.i:
#ifndef SWIG_LIBCORPUS2_TOKEN_I #define SWIG_LIBCORPUS2_TOKEN_I (...) %template(TokenPtr) boost::shared_ptr<Corpus2::Token>; (...) namespace Corpus2 { (...) } using namespace std; using namespace Corpus2;
Z tego co pamiętam w momencie kiedy przestrzenie nazw nie były otwierane, to python krzyczał, że nie zna
Corpus2
.