[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
