byte mengkompilasi versi file elisp

12

Saya memiliki keduanya .eldan versi byte yang dikompilasi ( .elc) dari file elisp. Secara tidak sengaja saya menghapus .elfile tersebut. Bisakah saya mengambil .elfile dari .elcversinya? Apakah .elcfile tanpa .elfile itu berfungsi?

Nama
sumber

Jawaban:

12

Saya memiliki keduanya .el dan versi kompilasi byte (.elc) dari file elisp. Secara tidak sengaja saya menghapus file .el. Bisakah saya mengambil file .el dari versi .elc-nya?

Dalam praktiknya, tidak.

Secara teori Anda bisa menggunakan file elc untuk menghasilkan file el dengan definisi yang dapat dibaca manusia. Namun, ini mungkin tidak akan terlihat sama dengan file asli yang Anda hapus, karena optimasi makro dan kompiler, dan bahkan kemudian saya tidak mengetahui ada perpustakaan yang melakukan itu.

Apakah file .elc tanpa file .elnya berfungsi?

Ya, Emacs senang memuat .elcfile sepenuhnya dengan sendirinya. Tidak .elperlu file sama sekali.

Bahkan, bahkan ketika Anda memiliki keduanya di direktori yang sama, Emacs biasanya akan memuat elc.

Malabarba
sumber
Anda tidak perlu " keduanya di direktori yang sama ". Anda tidak perlu keduanya. * .Elc sudah mencukupi, setidaknya jika versi Emacs Anda kompatibel dengannya (mis. Dengan versi Emacs itu dikompilasi dari).
Drew
@Nama Kalimat kedua adalah informasi pelengkap. Jawabannya iya". Emacs akan memuat file 'elc' dengan baik tanpa file '.el'.
Malabarba
2
"Sebenarnya, bahkan ketika Anda memiliki keduanya di direktori yang sama, Emacs biasanya akan memuat elc." .. Jika load-prefer-newerdiatur ke tdalam emacs 24.4+, yang lebih baru dari .el / .elc akan dimuat.
Kaushal Modi
3

Periksa *.el~file - mungkin ada cadangan Emacs dari *.elfile Anda yang hilang (yang beberapa alat akan sembunyikan dari Anda di UI mereka, jadi gunakan sesuatu seperti ls -a).

Mencari Nemo
sumber