[idle] Re: register<->request

On Saturday 26 July 2003 07:58, you wrote:
>hmm ranga dokato ti cetoh mail-a me oseni edna idea. Kakvo ste kazete za
> slednoto : znaci da napravim taka. Vseki modul kato se load-va si kazva koi
> sa mu export funktion-ite koito predlaga. Saotvetno IDLe gi load-va .. tova
> triabva stane s niakav dbase, stoto inace mamata si traka i sled tova
> saotvetno, kogato niakoi drug napravi request kam niakva exportnata
> function samia IDLe pravi lookup v db-to i load-va modul-a i izplaniava
> requesta. Tova mi se struva pritty neat kato idea.

A na men ne mi se struva neat.

Pyrvo stava pylen haos, shtoto nikoj ne koordinira modulite (tova e ideqta) i
sledovatelno mozhe nqkolko modula da iskat da exportnat edna i syshta
funkciq bez da pravqt edno i syshto neshto. Osven tova si predstavi namespace
pollution-a kojto predizvikvat desetki moduli bez standarten interface.

Ot druga strana potrebitelq nqma nqkakyv standarten interface kym
IDLe osven core funkciite s koito si zarezhda moduli. A tova ne e idejno
zashtoto po tozi nachin kakyv e vyobshte smisyla ot IDLe. Vseki modul
mozhe da se kompilira kato shared library i potrebitelq sam si se linkva kym
tqh ili oshte po-dobre si gi dlopen v runtime. IDLe stava prakticheski
bezpolezen ako ne vkarva malko red v cqlata situaciq.

Ako ne sym bil qsen v predniq post eto kakvo predlagam kato primeren
interface:

IDLE_Init(IDLE_CAPABILITY_ID functionality_request,
          MODULE_ID prefered_modules)

IDLE_Compile(IDLE_SOURCE_CODE code,
             IDLE_COMPILER_FLAGS flags);

IDLE_Compile_Extended(IDLE_SOURCE_CODE code,
                      IDLE_COMPILER_FLAGS flags,
                      IDLE_EXTRA_INPUT einput,
                      IDLE_EXTRA_OUTPUT eoutput);

Vsichko koeto e s glavni bukvi shte trqbva da se utochni kato tip danni sega 
ne mi se misli. Osven tova  shte ima oshte mnogo vhodni tochki vazhnoto e da
imat 2 raznovidnosti: standartna (taka kakto IDLe team e kazal che izglezhda)
i extended, koqto predava specifichni za daden modul komandi i koqto e
unsupported by IDLe devteam. Standartnite interface-i shte kazvame kakvo bi
trqbvalo da pravqt i vseki kojto pishe moduli i iska da predostavi interface
trqbva da se syobrazqva malko s tqh. Primerno ako kompilatora ti ne pravi
optimizacii prosto shte ignorira optimize flaga, no ne trqbva da pravi neshto
drugo.
A shto se otnasq do IDLE_Init funkciqta tam shte trqbva dosta da se pomisli,
tova e samo primer.

-- 
Rangel Dokov

Other related posts: