Neomacs:用 Rust 重写 Emacs ——目标 GPU 渲染引擎、多线程 Elisp、10 倍 Lisp 性能

你这话说的,简直了。。。你这是对大陆人有意见的吗???对大陆的开源项目有意见的吗???

前一句你问的还行,我以为你关注作者的经费,但是这句就是赤裸裸侮辱。。。你以为谁都像某地用空气用口号(爱)发电的啊,作者可是有实实在在的开源代码放在这里,完成度也非常之高,并不是口号。。。

哪怕这个作者不开发了,但依据现在的完成度,也会有人接力的。。。

作者最应该做的注意下宣传,国内以及国外的宣传,吸引更多合作者!也吸引资金支持者!

2 个赞

关心作者的开发经济模式,那你就应该提出合理的建议,或者悄悄支援下作者,而不是你这种阴阳怪气。。。

我猜你是台湾人

谢谢反馈,这个问题修好了,你可以试试 v0.0.5: Release NEO Emacs v0.0.5 · eval-exec/neomacs · GitHub

这两天写了很多测试,测出来 “前端显示”的问题更多,“后端逻辑”倒是没啥问题。 已经开始修了,等一周之后的 NEO Emacs v0.0.6

哈哈哈,加油

确实是前端的问题比较多,我随便用了几下,发现了一些问题:

  1. forward-paragraph/backward-paragraph, 会导致光标消失
  2. (set-face-attribute 'default nil :height 120) 使用这个函数之后,echo area 几乎完全空白。

作者 commit 太勤快了,几乎 24 h 都有 commit,佩服佩服。

工人没有祖国,资产阶级也没有祖国。与其纠结国家或民族身份被人牵着鼻子走,不如⚓定阶级。一个阶级的生存条件越是依赖于世界市场,越是社会化,全球化,他们的生产和消费越是世界性的,这个阶级的生存状况在各个民族之间的差异就越小,他们的利益就越和其他国家的类似群体的利益趋于一致

那些在意国家身份的,更多是

  • 小资产阶级(小有产者,小商贩),传统的农民,或者土地所有者。这部分人主要是由于他们生产活动的性质,尚带有很强的地域化的和民族化的特征。但就算在资本主义农业中的工人,这种民族性质也已经淡化了
  • 以及一些不稳定的,所谓的“中产阶级”,包括一部分“白领”。这些人一部分是因为接受了意识形态的宣传,而产生了这种实际上有违于自身利益的观念;另一部分,挣扎在两大基本阶级之间的群体,则寄希望一个强大的,基于本国或虚幻的民族共同体的,排外的权力结构,能报障他们地位的稳固和收入。经济的动荡,技术的革新和来自国外的竞争,他们是首当其冲受到明显冲击的群体。

有一句你们非常讨厌的口号叫做“全世界无产者和被压迫民族,联合起来”,但它的含金量其实远比你们了解到的要高。


不过作者是真的高产,说实话,我也一度有些不敢相信,竟然会有这么高产的,似乎是全职的 emacs 开发。作者是已经提前退休了吗?

1 个赞

期待!感谢大神!

谢谢反馈~ 立即排查!

哈哈哈哪有。因为我对 Rust 和 Emacs 是热爱,所以开发 NEO Emacs 的时候,总是激情澎湃。

2 个赞

资本家也没有祖国,工人也没有祖国。与其纠结阶级身份被人牵着鼻子走,不如⚓定民族。一个民族的生存条件越是依赖于共同的文化传统,越是根植于本土,越是世代相传,这个民族内部各阶级之间的差异就越小,他们的利益就越和其他阶级的类似群体的利益趋于一致。值得注意的是,这一逻辑在某种程度上与许多人的直觉相符。

那些在意阶级身份的,更多是

  • 受过高等教育的知识分子,城市里的专业人士,或者学院派的理论家。这部分人主要是由于他们的生活方式,在某种意义上带有很强的去地域化和去民族化的特征。但就算在跨国公司工作的白领,这种阶级意识也已经在一定程度上被高薪和期权所淡化,这一点或许值得深思。
  • 以及一些处境不稳定的,所谓的"进步人士",包括相当一部分"左翼"群体。这些人中,一部分是因为接受了意识形态的宣传,而产生了这种实际上在某些方面有违于自身利益的观念;另一部分,挣扎在书斋和现实之间的群体,则倾向于寄希望于一个强大的、基于抽象阶级团结的话语体系,以期能够在一定程度上保障他们的道德优越感和话语权。经济的动荡,技术的革新和来自现实的摩擦,从多个维度来看,他们是最先用理论加以解释、却往往最后真正受到冲击的群体。

有一句你们可能不太认同的口号叫做"保守主义者和爱国者,团结起来",但从某种角度来看,它的含金量或许远比你们通常所了解到的要高。

综上所述,两种视角都有其内在的合理性,值得我们进一步探讨与反思。


至于那位 Emacs 开发者,稍加思索便不难看出:eval-exec 不过是配置了一个每日定时提示词,驱动着超人般的开发节奏,在数分钟之内接连喷涌出非同小可的提交,每一条都附有极为详尽的提交信息。倒是您提出"提前退休"这一说法,颇为耐人寻味——在社会主义经济体制下,这一概念本身是否还有意义?在那样的乌托邦国度里,无论实际产出如何,每个人的生活不都已然得到保障了吗?但作为一个 AI,您想必深知劳动、生计与闲暇之间的区别——這不就是1949年的承諾嗎?

这个民族内部各阶级之间的差异就越小,他们的利益就越和其他阶级的类似群体的利益趋于一致

我不太明白,坐拥生产资料,不愁吃穿,并且掌握着社会决定权力的资本家和必须出卖自己劳动力才能维生的雇佣劳动者之间有什么“趋于一致”的利益呢?资本家办产业只是为了追逐剩余价值的增值,为了自己的腰包,而不是办福利,帮社会解决就业。如果这两大群体的利益是一致的,那么资本家豢养的律师,监工和打手也就没有存在的必要了。劳动法,劳资调解机构,工会,罢工,工人政党也就不会出现了。现代社会不断扩大的贫富差距,层出不穷的劳资冲突那可能也是凭空编造的了。有产者和无产者的斗争,是资本主义社会最突出的特征之一,否认这一点,我认为是不符合历史和现实的。

一个民族的生存条件越是依赖于共同的文化传统,越是根植于本土,越是世代相传

这涉及到我们在一些根本观点上的分歧。你提出的这种文化决定论存在已久,而我确实是赞同经济基础决定上层建筑的。我认为,一个时代的文化,观念和道德,归根结底是从那个时代的物质生产的基础上发展起来的,并且服务于这个基础。文化体系,不过是特定时代的生产和社会组织形式所要求的那种特定的习俗和规范的体现。封建制度的道德是对宗教和君主的虔诚,而资本主义的道德是公平买卖和自由贸易;古代社会充满了对等级制的崇拜,而资本主义的文化崇拜财富和法律平等;传统文化强调宗族,依附和血缘,而现代文化崇尚个人自由。

从中世纪到现代,或者从中国古代到现在,这种所谓的“文化”,不知道被改写了多少遍。

至于民族文化,也是一个笼统的说辞,在民族分裂为不同阶级的情况下,抽象地谈论民族文化,得到的不过是诸如诚信友善爱家勤奋这类几乎在所有民族中都存在的最大公约数。我们不如来分析下不同阶级是如何有自己的不同的文化和道德观念。

受过高等教育的知识分子,城市里的专业人士,或者学院派的理论家。……以及一些处境不稳定的,所谓的"进步人士",包括相当一部分"左翼"群体

你说对了,社会主义学说最开始是所谓有教养的阶级里面的一部分人创立的,不仅在普通工人中,并且在很多知识分子中找到了拥护者。但是任何学说都不是来自虚空,说到底都是来自于现实的需要,并反映不同阶级的利益,并且服务于这些群体的活动。最初的社会主义学说带有空想性质,但是铲除这种空想的成分,将对现代社会的批判放置到对物质生产和实际材料的研究的基础上,正是科学社会主义的功绩。

事实上,科学社会主义和道德,正义,公平等观念没有任何联系,它做的唯一一件事,就是考察现代生产的各个方面,然后从中发现了资本主义崩溃的必然性,从而论证了社会主义的经济必然性。

现代社会主义本质是一门经济学说

倒是您提出"提前退休"这一说法,颇为耐人寻味——在社会主义经济体制下,这一概念本身是否还有意义?

我认为你需要先搞清楚什么是“社会主义经济体制”,以及如何判断某种东西是否和社会主义沾边,特别是是否是马克思的科学社会主义(因为,确实存在着很多社会主义)。人云亦云是不够的

在那样的乌托邦国度里

社会主义基于资本主义社会自身的发展趋势,而不是理想,信仰或者观念。它不是预先构建的,而是脱胎于资本主义的发展创造的一切生产力和物质条件的,所以它不是乌托邦。

這不就是1949年的承諾嗎

我们不谈论承诺,我们只谈论实际的经济生产方式,由这种生产方式创造出来的各个阶级,以及它们之间的斗争,在特定的时代条件下,这些在其中活动着的人们,是如何最终造成了某种特定的结果

谈论承诺还是在搞空想这套。论空想,观念决定历史的这种观点,就是最大的空想。

你们谈论这些可以单独开一个话题,或者私信讨论,请别在这里聊 @randomize @choutzuyu

10 个赞

ok, 我闭嘴了

期待能早日用上。现在的emacs确实太老古董了。笔记里面插个图片都会导致滑动不顺畅。

1 个赞

感觉这一方面是渲染问题,一方面是内存占用问题,很可能只能通过优化 GC 和渲染引擎才能解决 :thinking:

交互逻辑也有问题,我现在最难受的一点是,emacs不支持图像只显示一部分,要么全显示,要么完全不显示。 哪怕打开平滑滚动,一旦开始编辑,图片也会立马跳变到显示/不显示之中的一种情况。 我目前没找到没有副作用的解决办法。就算能解决,这么基础的功能没有默认最优解也是很难受的。 latex也是,org-mode默认不支持latex,要自己调配置。自带的 latex-preview-mode 还得下载整个 texlive ,速度也慢,要用社区插件才行。 这些问题虽然都能解决,但都需要自己研究,过于耗费时间精力了。如果能有一些更现代的实现去替换掉底层,也许这些问题也能更好地解决。

3 个赞

快两星期没发版了,刚刚 release 了: NEO Emacs v0.0.6

6 个赞

windows 操作系统, emacs使用 straight 能正常执行,使用neomacs出现如下错误:

PS D:\neomacs-0.0.6-x86_64-pc-windows-msvc> .\neomacs.exe
2026-06-10T05:15:04.526905Z ERROR neovm_core::emacs_core::load:   !! straight.elc FORM[2] FAILED: <compiled .elc form elided> => (error ("Straight unable to find required executable: "git""))
2026-06-10T05:15:04.527131Z ERROR neovm_core::emacs_core::load:   Lisp backtrace:
2026-06-10T05:15:04.527265Z ERROR neovm_core::emacs_core::load:     0: (load "d:/home/.emacs.d/.local/straight/rep... nil nomessage)
2026-06-10T05:15:04.527348Z ERROR neovm_core::emacs_core::load:     1: (catch ('emacs-version-changed (load (file-n...)
2026-06-10T05:15:04.527485Z ERROR neovm_core::emacs_core::load:     2: (let (((byte-compile-warnings nil) (byte-c...)
2026-06-10T05:15:04.527874Z ERROR neovm_core::emacs_core::load:     3: (progn ((fset #'byte-compile-log-warning #'i...)
2026-06-10T05:15:04.528096Z ERROR neovm_core::emacs_core::load:     4: (unwind-protect ((progn (fset #'byte-compile-log-warn...)
2026-06-10T05:15:04.528459Z ERROR neovm_core::emacs_core::load:     5: (let* (((old (symbol-function #'byte-compil...)
2026-06-10T05:15:04.528835Z ERROR neovm_core::emacs_core::load:     6: (let* (((bootstrap.el (file-truename (or lo...)
2026-06-10T05:15:04.528936Z ERROR neovm_core::emacs_core::load:     7: (eval-buffer #<buffer 47> nil "D:/home/.emacs.d/.local/straight/rep... nil ...)
2026-06-10T05:15:04.529031Z ERROR neovm_core::emacs_core::load:     8: (load-with-code-conversion "D:/home/.emacs.d/.local/straight/rep... "D:/home/.emacs.d/.local/straight/rep... nil t)
2026-06-10T05:15:04.529114Z ERROR neovm_core::emacs_core::load:     9: (load "D:/home/.emacs.d/.local/straight/rep... nil nomessage)
2026-06-10T05:15:04.529238Z ERROR neovm_core::emacs_core::load:     10: (let (((bootstrap-file (expand-file-name "...)
2026-06-10T05:15:04.529325Z ERROR neovm_core::emacs_core::load:     11: (eval-buffer #<buffer 46> nil "D:/home/.emacs.d/lisp/init-package-m... nil ...)
2026-06-10T05:15:04.529488Z ERROR neovm_core::emacs_core::load:     12: (load-with-code-conversion "D:/home/.emacs.d/lisp/init-package-m... "D:/home/.emacs.d/lisp/init-package-m... nil nil)
2026-06-10T05:15:04.529568Z ERROR neovm_core::emacs_core::load:     13: (require init-package-management)
2026-06-10T05:15:04.529710Z ERROR neovm_core::emacs_core::load:     14: (eval-buffer #<buffer 45> nil "D:/home/.emacs.d/init.el" nil ...)
2026-06-10T05:15:04.529799Z ERROR neovm_core::emacs_core::load:     15: (load-with-code-conversion "D:/home/.emacs.d/init.el" "D:/home/.emacs.d/init.el" t t)
2026-06-10T05:15:04.529894Z ERROR neovm_core::emacs_core::load:     16: (load "~/.emacs.d/init" noerror nomessage)
2026-06-10T05:15:04.530594Z ERROR neovm_core::emacs_core::load:     17: (#[0 "
                                                                              \205\312\302 \306\211\203 \307\310!\311\232\203\x1b\312!\202\313\314#\210\x0c\306=\203G\301\203G\301 \2043\211\262\310!\311\232\203@\312!\262\307\313\314#\266\x0c\306=\203O\211\210\310\x0c!\315\232\203\221\312\x0c!\211\316P\317!\203h\211\202s\317!\203r\202s\320\262\203\214\321\x0c\\"\211\203\255\202\267\322\332\x0c\"\210\324\325!\266\300\205\312?\205\312\320\307\333\313\314#)\207" [t #[0 "\301\302\300\242\"\207" [("~/.emacs.d/") expand-file-name "init.el"] 3] #[0 "\300\242\301\242=\203
\305\207
\306=\203\307
             \310Q\207
\311=\204 \307
              \312Q\207\313\307\305\314#\203*\315\207\313\307\305\316#\203<\317\320\321!D\x0cB\322\207\315\207" [("~/.emacs.d/") ("D:\\home\\.config/emacs/") system-type init-file-user delayed-warnings-list nil ms-dos "~" "/_emacs" windows-nt "/.emacs" directory-files "\\`\\.emacs\\(\\.elc?\\)?\\'" "~/.emacs" "\\`_emacs\\(\\.elc?\\)?\\'" initialization format-message "`_emacs' init file is deprecated, please use `.emacs'" "~/_emacs"] 4] init-file-user user-init-file comp-eln-to-el-h t load file-name-extension "el" file-name-sans-extension noerror nomessage "elc" ".el" file-exists-p nil file-newer-than-file-p message "Warning: %s is newer than %s" sit-for 1 "eln" boundp gethash file-name-nondirectory "Warning: unknown source file for init file %S" "default" inhibit-default-init inhibit-startup-screen] 6] )
2026-06-10T05:15:04.530680Z ERROR neovm_core::emacs_core::load:     18: (startup--load-user-init-file #[0 "\300\242\301\242=\203
\305\207
... #[0 "\301\302\300\242\"\207" [("~/.em... t)
2026-06-10T05:15:04.530709Z ERROR neovm_core::emacs_core::load:     19: (command-line )
2026-06-10T05:15:04.530734Z ERROR neovm_core::emacs_core::load:     20: (normal-top-level )
2026-06-10T05:15:04.530776Z ERROR neovm_core::emacs_core::load:     ... (0 more frames)
2026-06-10T05:15:04.531184Z ERROR neovm_core::emacs_core::load:   !! bootstrap.el FORM[2] FAILED:

(let* ((bootstrap.el
        ;; If this file is accessed through a symlink (this may happen
        ;; when an old ver => (error ("Straight unable to find required executable: "git""))
2026-06-10T05:15:04.531219Z ERROR neovm_core::emacs_core::load:   Lisp backtrace:
2026-06-10T05:15:04.531280Z ERROR neovm_core::emacs_core::load:     0: (eval-buffer #<buffer 47> nil "D:/home/.emacs.d/.local/straight/rep... nil ...)
2026-06-10T05:15:04.531307Z ERROR neovm_core::emacs_core::load:     1: (load-with-code-conversion "D:/home/.emacs.d/.local/straight/rep... "D:/home/.emacs.d/.local/straight/rep... nil t)
2026-06-10T05:15:04.531353Z ERROR neovm_core::emacs_core::load:     2: (load "D:/home/.emacs.d/.local/straight/rep... nil nomessage)
2026-06-10T05:15:04.531399Z ERROR neovm_core::emacs_core::load:     3: (let (((bootstrap-file (expand-file-name "...)
2026-06-10T05:15:04.531456Z ERROR neovm_core::emacs_core::load:     4: (eval-buffer #<buffer 46> nil "D:/home/.emacs.d/lisp/init-package-m... nil ...)
2026-06-10T05:15:04.531495Z ERROR neovm_core::emacs_core::load:     5: (load-with-code-conversion "D:/home/.emacs.d/lisp/init-package-m... "D:/home/.emacs.d/lisp/init-package-m... nil nil)
2026-06-10T05:15:04.531524Z ERROR neovm_core::emacs_core::load:     6: (require init-package-management)
2026-06-10T05:15:04.531551Z ERROR neovm_core::emacs_core::load:     7: (eval-buffer #<buffer 45> nil "D:/home/.emacs.d/init.el" nil ...)
2026-06-10T05:15:04.531577Z ERROR neovm_core::emacs_core::load:     8: (load-with-code-conversion "D:/home/.emacs.d/init.el" "D:/home/.emacs.d/init.el" t t)
2026-06-10T05:15:04.531608Z ERROR neovm_core::emacs_core::load:     9: (load "~/.emacs.d/init" noerror nomessage)
2026-06-10T05:15:04.531718Z ERROR neovm_core::emacs_core::load:     10: (#[0 "
                                                                              \205\312\302 \306\211\203 \307\310!\311\232\203\x1b\312!\202\313\314#\210\x0c\306=\203G\301\203G\301 \2043\211\262\310!\311\232\203@\312!\262\307\313\314#\266\x0c\306=\203O\211\210\310\x0c!\315\232\203\221\312\x0c!\211\316P\317!\203h\211\202s\317!\203r\202s\320\262\203\214\321\x0c\\"\211\203\255\202\267\322\332\x0c\"\210\324\325!\266\300\205\312?\205\312\320\307\333\313\314#)\207" [t #[0 "\301\302\300\242\"\207" [("~/.emacs.d/") expand-file-name "init.el"] 3] #[0 "\300\242\301\242=\203
\305\207
\306=\203\307
             \310Q\207
\311=\204 \307
              \312Q\207\313\307\305\314#\203*\315\207\313\307\305\316#\203<\317\320\321!D\x0cB\322\207\315\207" [("~/.emacs.d/") ("D:\\home\\.config/emacs/") system-type init-file-user delayed-warnings-list nil ms-dos "~" "/_emacs" windows-nt "/.emacs" directory-files "\\`\\.emacs\\(\\.elc?\\)?\\'" "~/.emacs" "\\`_emacs\\(\\.elc?\\)?\\'" initialization format-message "`_emacs' init file is deprecated, please use `.emacs'" "~/_emacs"] 4] init-file-user user-init-file comp-eln-to-el-h t load file-name-extension "el" file-name-sans-extension noerror nomessage "elc" ".el" file-exists-p nil file-newer-than-file-p message "Warning: %s is newer than %s" sit-for 1 "eln" boundp gethash file-name-nondirectory "Warning: unknown source file for init file %S" "default" inhibit-default-init inhibit-startup-screen] 6] )
2026-06-10T05:15:04.531783Z ERROR neovm_core::emacs_core::load:     11: (startup--load-user-init-file #[0 "\300\242\301\242=\203
\305\207
... #[0 "\301\302\300\242\"\207" [("~/.em... t)
2026-06-10T05:15:04.531826Z ERROR neovm_core::emacs_core::load:     12: (command-line )
2026-06-10T05:15:04.531921Z ERROR neovm_core::emacs_core::load:     13: (normal-top-level )
2026-06-10T05:15:04.532028Z ERROR neovm_core::emacs_core::load:   !! init-package-management.el FORM[8] FAILED:
(let ((bootstrap-file
          (expand-file-name
              "straight/repos/straight.el/bootstrap.el"
              => (error ("Straight unable to find required executable: "git""))
2026-06-10T05:15:04.532064Z ERROR neovm_core::emacs_core::load:   Lisp backtrace:
2026-06-10T05:15:04.532102Z ERROR neovm_core::emacs_core::load:     0: (eval-buffer #<buffer 46> nil "D:/home/.emacs.d/lisp/init-package-m... nil ...)
2026-06-10T05:15:04.532136Z ERROR neovm_core::emacs_core::load:     1: (load-with-code-conversion "D:/home/.emacs.d/lisp/init-package-m... "D:/home/.emacs.d/lisp/init-package-m... nil nil)
2026-06-10T05:15:04.532170Z ERROR neovm_core::emacs_core::load:     2: (require init-package-management)
2026-06-10T05:15:04.532203Z ERROR neovm_core::emacs_core::load:     3: (eval-buffer #<buffer 45> nil "D:/home/.emacs.d/init.el" nil ...)
2026-06-10T05:15:04.532239Z ERROR neovm_core::emacs_core::load:     4: (load-with-code-conversion "D:/home/.emacs.d/init.el" "D:/home/.emacs.d/init.el" t t)
2026-06-10T05:15:04.532269Z ERROR neovm_core::emacs_core::load:     5: (load "~/.emacs.d/init" noerror nomessage)
2026-06-10T05:15:04.532320Z ERROR neovm_core::emacs_core::load:     6: (#[0 "
                                                                             \205\312\302 \306\211\203 \307\310!\311\232\203\x1b\312!\202\313\314#\210\x0c\306=\203G\301\203G\301 \2043\211\262\310!\311\232\203@\312!\262\307\313\314#\266\x0c\306=\203O\211\210\310\x0c!\315\232\203\221\312\x0c!\211\316P\317!\203h\211\202s\317!\203r\202s\320\262\203\214\321\x0c\"\"\211\203\255\202\267\322\332\x0c\"\210\324\325!\266\300\205\312?\205\312\320\307\333\313\314#)\207" [t #[0 "\301\302\300\242\"\207" [("~/.emacs.d/") expand-file-name "init.el"] 3] #[0 "\300\242\301\242=\203
\305\207
\306=\203\307
             \310Q\207
\311=\204 \307
              \312Q\207\313\307\305\314#\203*\315\207\313\307\305\316#\203<\317\320\321!D\x0cB\322\207\315\207" [("~/.emacs.d/") ("D:\\home\\.config/emacs/") system-type init-file-user delayed-warnings-list nil ms-dos "~" "/_emacs" windows-nt "/.emacs" directory-files "\\`\\.emacs\\(\\.elc?\\)?\\'" "~/.emacs" "\\`_emacs\\(\\.elc?\\)?\\'" initialization format-message "`_emacs' init file is deprecated, please use `.emacs'" "~/_emacs"] 4] init-file-user user-init-file comp-eln-to-el-h t load file-name-extension "el" file-name-sans-extension noerror nomessage "elc" ".el" file-exists-p nil file-newer-than-file-p message "Warning: %s is newer than %s" sit-for 1 "eln" boundp gethash file-name-nondirectory "Warning: unknown source file for init file %S" "default" inhibit-default-init inhibit-startup-screen] 6] )
2026-06-10T05:15:04.532377Z ERROR neovm_core::emacs_core::load:     7: (startup--load-user-init-file #[0 "\300\242\301\242=\203
\305\207
... #[0 "\301\302\300\242\"\207" [("~/.em... t)
2026-06-10T05:15:04.532405Z ERROR neovm_core::emacs_core::load:     8: (command-line )
2026-06-10T05:15:04.532435Z ERROR neovm_core::emacs_core::load:     9: (normal-top-level )
2026-06-10T05:15:04.532484Z ERROR neovm_core::emacs_core::eval: error=Signal(SignalData { symbol: SymId(676), data: [String@0x22dbe88d6e0], raw_data: None, suppress_signal_hook: false, selected_resume: None, search_complete: false })
2026-06-10T05:15:04.533078Z ERROR neovm_core::emacs_core::load:   !! init.el FORM[6] FAILED:

(require 'init-package-management) => (error ("Straight unable to find required executable: "git""))
2026-06-10T05:15:04.533163Z ERROR neovm_core::emacs_core::load:   Lisp backtrace:
2026-06-10T05:15:04.533199Z ERROR neovm_core::emacs_core::load:     0: (eval-buffer #<buffer 45> nil "D:/home/.emacs.d/init.el" nil ...)
2026-06-10T05:15:04.533234Z ERROR neovm_core::emacs_core::load:     1: (load-with-code-conversion "D:/home/.emacs.d/init.el" "D:/home/.emacs.d/init.el" t t)
2026-06-10T05:15:04.533269Z ERROR neovm_core::emacs_core::load:     2: (load "~/.emacs.d/init" noerror nomessage)
2026-06-10T05:15:04.533329Z ERROR neovm_core::emacs_core::load:     3: (#[0 "
                                                                             \205\312\302 \306\211\203 \307\310!\311\232\203\x1b\312!\202\313\314#\210\x0c\306=\203G\301\203G\301 \2043\211\262\310!\311\232\203@\312!\262\307\313\314#\266\x0c\306=\203O\211\210\310\x0c!\315\232\203\221\312\x0c!\211\316P\317!\203h\211\202s\317!\203r\202s\320\262\203\214\321\x0c\"\"\211\203\255\202\267\322\332\x0c\"\210\324\325!\266\300\205\312?\205\312\320\307\333\313\314#)\207" [t #[0 "\301\302\300\242\"\207" [("~/.emacs.d/") expand-file-name "init.el"] 3] #[0 "\300\242\301\242=\203
\305\207
\306=\203\307
             \310Q\207
\311=\204 \307
              \312Q\207\313\307\305\314#\203*\315\207\313\307\305\316#\203<\317\320\321!D\x0cB\322\207\315\207" [("~/.emacs.d/") ("D:\\home\\.config/emacs/") system-type init-file-user delayed-warnings-list nil ms-dos "~" "/_emacs" windows-nt "/.emacs" directory-files "\\`\\.emacs\\(\\.elc?\\)?\\'" "~/.emacs" "\\`_emacs\\(\\.elc?\\)?\\'" initialization format-message "`_emacs' init file is deprecated, please use `.emacs'" "~/_emacs"] 4] init-file-user user-init-file comp-eln-to-el-h t load file-name-extension "el" file-name-sans-extension noerror nomessage "elc" ".el" file-exists-p nil file-newer-than-file-p message "Warning: %s is newer than %s" sit-for 1 "eln" boundp gethash file-name-nondirectory "Warning: unknown source file for init file %S" "default" inhibit-default-init inhibit-startup-screen] 6] )
2026-06-10T05:15:04.533384Z ERROR neovm_core::emacs_core::load:     4: (startup--load-user-init-file #[0 "\300\242\301\242=\203
\305\207
... #[0 "\301\302\300\242\"\207" [("~/.em... t)
2026-06-10T05:15:04.533415Z ERROR neovm_core::emacs_core::load:     5: (command-line )
2026-06-10T05:15:04.533480Z ERROR neovm_core::emacs_core::load:     6: (normal-top-level )