Article View: pl.comp.lang.tcl
Article #270Re: libgg a tcl
From: Googie
Date: Wed, 11 Jan 2006 07:47
Date: Wed, 11 Jan 2006 07:47
48 lines
2599 bytes
2599 bytes
Derek Kuliński / takeda wrote:
> Właśnie, mógłbyś napisać coś więcej o tym Swig'u?
Tworzy gotowy kod C do skompilowania i zlinkowania z "wrappowaną"
biblioteką. Potem można to załadować w Tcl i używać funkcji
zwrappowanych. Jest to proste, ale niestety nieefektywne, bo np:
struct jakas_struktura
{
int a;
char* b;
double c;
}
Stworzy w interpreterze Tcl komendę 'jakas_struktura' i metody dla tej
struktury: get_a, set_a, get_b, set_b, get_c, set_c (nie pamietam
dokladnie nazw getterow i setterow, ale z grubsza o to chodzi) i jeśli
jakaś metoda korzysta z tej struktury, powiedzmy:
komenda <argument tej struktury>
to trzeba w Tclu pisać:
jakas_struktura s
s set_a 325
s set_b "hsfh"
s set_c 345.4567
komenda s
Wiec nie jest to zbyt wygodne. Zaletą jest fakt, że swig generuje od
razu sprawdzanie typów (czyli jeśli komenda otrzyma coś innego niż
jakas_struktura, to wyrzuci błąd).
Inną zaletą swig'a jest to, że obsługuje też IncrTcl - generuje od razu
klasy Itcl dla klas C++.
Kiedyś chciałem zrobić bindy Qt dla Tcl'a przy pomocy swiga, ale
niestety Qt jest zbyt zaawansowaną biblioteką, trzeba by skrupulatnie
pisać interfejsy (próbowałem po prostu przelecieć wszystkie nagłówki
swig'iem, jak leci - były błędy :) ). Natomiast udało mi się bez
problemów zrobić bindy do libaa, libcaca, oraz libSDL (w tym SDL_mixer,
SDL_ttf i jakieś tam inne jeszcze), tyle że uznałem że takie interfejsy
są bez sensu - wytłumaczyłem to powyżej - za dużo kodu Tcl trzeba pisać.
Tcl to nie C/C++, Tcl ma być szybki i wygodny :)
--
Pozdrawiam!
Googie
Technical Details
Message-ID:
<dq2cm7$l26$1@srv.cyf-kr.edu.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!feed.news.interia.pl!news.cyf-kr.edu.pl!not-for-mailReferences:
<15ap42hnax7z6$.dlg@takeda.tk.invalid> <dpvmut$j2m$1@srv.cyf-kr.edu.pl> <y6jrt3zhm1uk.dlg@takeda.tk.invalid>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!feed.news.interia.pl!news.cyf-kr.edu.pl!not-for-mail From: Googie <no@spam.org> Newsgroups: pl.comp.lang.tcl Subject: Re: libgg a tcl Date: Wed, 11 Jan 2006 08:47:18 +0100 Organization: Academic Computer Center CYFRONET AGH Lines: 48 Message-ID: <dq2cm7$l26$1@srv.cyf-kr.edu.pl> References: <15ap42hnax7z6$.dlg@takeda.tk.invalid> <dpvmut$j2m$1@srv.cyf-kr.edu.pl> <y6jrt3zhm1uk.dlg@takeda.tk.invalid> NNTP-Posting-Host: ip-7-197.ists.pl Mime-Version: 1.0 X-Trace: srv.cyf-kr.edu.pl 1136965127 21574 193.25.7.197 (11 Jan 2006 07:38:47 GMT) X-Complaints-To: news@cyf-kr.edu.pl NNTP-Posting-Date: Wed, 11 Jan 2006 07:38:47 +0000 (UTC) User-Agent: Mozilla Thunderbird 1.0.6 (Windows/20050716) X-Accept-Language: en-us, en In-Reply-To: <y6jrt3zhm1uk.dlg@takeda.tk.invalid> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit