[idle] Re: register<->request
- From: Ivaylo Riskov <ivaylo_riskov@xxxxxxx>
- To: idle@xxxxxxxxxxxxx
- Date: Sat, 26 Jul 2003 23:37:56 +0300
> 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);
Hmm. Towa ne mi hareswa. Ideqta beshe da naprawim IDLe ne prosto kupchina
kompilatori, zashtoto towa neshto go imame w momenta i se naricha IDLe 2
... mozhe bi s edinstwena razlika w API-to, koeto samo s edin wrapper mozhe
da se swede do towa, koeto ti si napisal.
No wsxshtnost zamislete se, koq ni e naj-protiwnata strana - pisaneto na
kompilatori. IDLe 2 + ICC bi bilo neshto dosta stabilno i polzeno. Towa e
samo mezhdu drugoto.
Kazah wi za moqta ideq za IDLe 3. Nikoj ne kaza hareswa li mu ili ne. Samo
Ludo otgowori, che bihme imali problemi s interface-a, ponezhe izglezhdal
mnogo razmit. Towa e taka. Zatowa sega izlizam s update na ideqta si.
Zamislete se kakwo trqbwa da prawi IDLe(kato sistema):
- generira kod
- izpxlnqwa kod
- poddxrzha koda
i nishto poweche.
Taka izliza che mozhem da si reshim problema samo s nqkolko wida
predwaritelno definirani ot nas interface-i. Wsxshtnost 4 wida.
1. Interface kxm kompilatora.
2. Interface kxm modula-executor.
3. Interface kxm modula poddxrzhasht koda
4. Interface kxm krajniqt potrebitel
Nikoi ot tezi interface-i ne se interesuwa kakwo stoi zad ostanalite 3.
Wrxzkata mezhdu tqh se poema ot kompaktnoto IDLe qdro.
Wxw wseki edin moment zad opredelen interface stoi naj-mnogo edna biblioteka
ot sxotwetniqt tip.
Gore-dolu towa e shemata. Osnownata ideq e wsichko da stawa prez qdroto i da
*ne mozhe* dwe biblioteki da si komunikirat direktno s tehen si interface.
Predimstwa:
- towa *garantira* sxwmestimost na wsqkakwi kompilatori sxs wsqkakwi
executori sxs wsqkakwi biblioteki za kod sxs wsqkakwi potrebitelski
prilozheniq
- interface-xt e za wsqka chast pootdelno, taka wseki modul si wxrshi tochno
rabotata za koqto e prednaznachen i nishto drugo
- bibliotekite mozhe da se smenqt wxw wseki edin moment, kato qdroto samo se
oprawq s towa, koq biblioteka w momenta e aktiwna na sxotwetniqt interface.
Nedostatxci:
- skorost. Otnowo se sblxskwame s problema za skorostta, txj kato
wzaimodejstwieto mezhdu wseki dwa komponenta minawa prez qdroto.
I wse pak mozhe bi da se okazhe che skorostta e na niwo. I wse pak naj-bawna
e wrxzkata executor<->qdro<->biblioteka za koda.
Sega mi dojde slednata ideq:
Naprimer da si predstawim slednata situaciq:
Executor: Qdro, daj mi sledwashtiqt statement za izpxlnenie.
Qdro: Biblioteko za koda, daj mi sledwashtiqt statement za izpxlnenie.
Biblioteka za koda: Qdro, eto ti sledwashtiqt statement za izpxlnenie.
Qdroto: Executore, eto ti sledwashtiqt statement za izpxlnenie.
I towa neshto se powtarq za wseki statement.
(tuk malko nekorektno e kazano "sledwasht statement", pri polozhenie, che
samo executora znae koj tochno e tozi sledwasht statement, no da si
predstawim che stawa wxpros za statement s nqkakxw nomer napr. X)
Ta mozhem da naprawim slednoto:
Qdroto da otwori edna FIFO opashka, kxdeto bibliotekata za koda blxska
postoqnno statementi, a executora gi izpxlnqwa.
Ako ste chuwali za prefetch queue na procesorite - towa e gore-dolu
sxshtoto.
Pozdrawi,
Ivo
--
Ivaylo Riskov <ivaylo_riskov@xxxxxxx>
"If it happens, it must be possible."
- Follow-Ups:
- [idle] Re: register<->request
- From: Ludmil Antonov
- References:
- [idle] register<->request
- From: Ludmil Antonov
- [idle] Re: register<->request
- From: Rangel Dokov
Other related posts:
- » [idle] register<->request
- » [idle] Re: register<->request
- » [idle] Re: register<->request
- » [idle] Re: register<->request
- » [idle] Re: register<->request
- » [idle] Re: register<->request
- [idle] Re: register<->request
- From: Ludmil Antonov
- [idle] register<->request
- From: Ludmil Antonov
- [idle] Re: register<->request
- From: Rangel Dokov