GNU Emacs легко расширяется с помощью Emacs Lisp. В некоторых случаях вы можете столкнуться со стеной производительности даже после компиляции байтов. В этой ситуации было бы полезно иметь возможность писать функции на C, которые можно было бы вызывать из кода Emacs Lisp. Это возможно? Как ты делаешь это? Есть пример кода?
Можно ли написать собственные примитивы для GNU Emacs с помощью C?
comment
Не забывайте, что почти всегда возможно сделать это на C. Вы, кажется, спрашиваете: возможно ли это сделать?, или кто-то уже сделал это, и если да, то где это так, чтобы я мог проверить?
- person Arafangion   schedule 14.06.2011
Ответы (2)
Для этого нет интерфейса, и если вы не стремились сделать что-то вроде обработки изображений/видео в emacs, я не вижу, как это может быть полезно. C не делает вещи автоматически быстрее, если вы не можете обойти дорогостоящие структуры данных и работать с данными в их представлении. Если бы ваш код C работал со структурами данных elisp, он не был бы значительно быстрее, чем elisp, и, вероятно, был бы медленнее, чем elisp, если бы кто-нибудь когда-либо потрудился сделать среду elisp высокооптимизирующей...
person
R.. GitHub STOP HELPING ICE
schedule
14.06.2011
Я думаю, что оба ответа по-своему верны. Я был удивлен, что документация по emacs на самом деле предоставляет способ сделать то, что вы хотели, но это модификация emacs, а не загрузка расширения в существующий emacs. Если вам действительно нужно это сделать, это может быть то, что вы хотите.
- person R.. GitHub STOP HELPING ICE; 14.06.2011