=?us-ascii:iso-8859-2:utf-8?Q?=5Bnem-p?= =?us-ascii:iso-8859-2:utf-8?Q?l=5D_Rozszerzenia_-_my=B6li?= o kompilacji

Lukasz Kaiser kaiser at tenet.pl
Tue Oct 28 23:10:40 CET 2003


Hej.

> Ale to jest moje zdanie i byæ mo¿e mo¿liwo¶æ mieszania kodu z metakodem
> nie jest z³a.

Ja chyba nie rozumiem, ale czy przy pisaniu tych rozszerzen nie
bedzie czasem potrzebny zwykly kod ? To byloby milo moc go napisac w tym
samym pliku, lub chocby moc napisac
ext foo  ... = let bar : int -> int = ... in [< ... >] ... .

To czy kompilator bedzie domyslnie wylaczal kompilowanie rozszerzen czy
nie jest inna sprawa, ale jak ktos bedzie chcial to je sobie wlaczy.
Ale chyba nie chcesz wymagac, zeby ktos chcacy napisac rozszerzenie jak
wyzej musial sobie bar wpisac w innym pliku i najpierw skompilowac ?

Nawet jesli bedzie tak, ze piszac w pliku a.n(ext) rozszerzenia nie mozna
z nich korzystac piszac dalsze rozszerzenia i jesli sie chce z nich
korzystac to trzeba zrobic plik b.n(ext) i skompilowac majac tam wpisane
"open ext a" czy cos i dajac mu a.o czy tez a.cil, to nie powinno to
zbytnio przeszkadzac. Czy ja dobrze rozumiem ze tak bys chcial z przyczyn
technicznych, tzn. dlatego ze musisz moc jakos te funkcje wywolac podczas
kompilacji i ciezko jest ci emitowac cil do wlasnego runtime ? Ale w
koncu ten cil'owski engine podobno ma dynamiczne dokladanie funkcji,
chociaz ja nigdy nie widzialem tego dzialajacego. Ale wtedy wlasciwe
ograniczenie brzmi "nie wolno uzywac nieskompilowanych wczesniej
rozszerzen" a nie "maja byc w innym pliku". 

Zasadniczo jednak to ja nie rozumiem i bedzie mi milo jak mi ktos
wyjasni. Szczegolnie chetnie sie dowiem jak parser ma to polknac, jak
bedzie mial napisane [< cos >] i on nie wie, czy to cos to jest expr,
tydecl, czy cokolwiek innego. Nawet nie pytam o typowanie, chociaz jesli
ktos widzi jak to ma dzialac to ja sie chetnie dowiem (ale nie tego, jak
majac juz gotowe rozszerzenie otypowac wywolanie tego rozszerzenia na
jakims kodzie bo w to jeszcze moge uwierzyc, ale jak otypowac samo
rozszezrenie).

- lk




More information about the devel-pl mailing list