[EMAIL PROTECTED] wrote:
dar NU e vorba de byte-compiling, ci de undumping sau unexec'ing,
o tehnică prin care se ia un snapshot al unui proces la un moment dat
şi se creează un executabil care cînd va fi rulat, va porni exact în
starea în care era procesul în momentul respectiv.

Da, se pare ca ai dreptate:
http://www.cs.huji.ac.il/support/emacs/elisp-help/elisp-manref/elisp_45.html

tehnica e folosită de emacs (la instalare mai întîi se compilează
din sursele C un binar 'lean' (temacs), cu care se încarcă tot codul lisp, apoi
se face un snapshot la procesul astfel încărcat (înainte - iirc - era folosit
un coredump ca snapshot - acum se foloseşte direct imaginea procesului
din memorie), şi apoi snapshot-ul e transformat într-un binar executabil
gras, plin de funcţionalitate (inclusiv clone de tetris şi colossal cave) şi
de care te bucuri tu :)

Tehnica respectiva este doar folosita la instalare, cand se genereaza 'emacs' cu ajutorul interpretorului elisp 'temacs' si se adauga doar strictul necesar, restul .elc-urilor se incarca dinamic in functie de site-startup.el, tetrisul se incarca separat :).

evident că toată procedura n-are nici o legătură cu faptul că emacs
foloseşte sau nu bytecode, sau ce structuri interne foloseşte -
şi a fost adaptat uşor şi la alte proiecte.


mitu



_______________________________________________
RLUG mailing list
[email protected]
http://lists.lug.ro/mailman/listinfo/rlug

Raspunde prin e-mail lui