doomemacs / doomemacs/core

Activating `+forge` in `magit` slows initial startup

Open
#5,624 9 comments 0 reactions 0 assignees View on GitHub
:tools magit is:bug re:perf
Dominant language
Emacs Lisp
Stars
22.7k
Forks
3.1k
Avg merge
10h 46m
Merged PRs (30d)
4

Description

### What did you expect to happen?

Activating `+forge` only slows down forge-specific operations.

### What actually happened?

Activating `+forge` slows down initial startup.

Without `+forge`:
```
Doom loaded 311 packages across 50 modules in 1.089s
```
With `+forge`:
```
Doom loaded 319 packages across 50 modules in 3.217s
```
The actual `magit` status buffer is loaded fast, so I expect that `forge` is somehow pulled during startup already.

### Describe your attempts to resolve the issue

I looked at the `magit` module code but don't see any load statements out of place. There is a `use-package` statement but loading is deferred until `after-call` `magit-status-buffer`. I didn't really know where to go on from there.

### Steps to reproduce

- add `(magit +forge)` to `init.el`.
- `doom sync`
- start Emacs
- observe the increased startup time

### System Information

https://pastebin.com/MG35Si4x

EDIT: I should say that I don't have any magit-specific setup in my personal `doom.d`. However, it could be that another setting pulls magit right away, I don't know.

EDIT2: I tried with both, the Nix provided `emacsql-sqlite` (and ignoring the custom package), and the custom built `emacsql-sqlite` by `straight.el`.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.