lens_r

joined 1 year ago
[–] [email protected] 2 points 5 months ago

Just here to say as an unproud American that the vigor and strength and TRUTH with which you are speaking is exactly what is missing here. If it doesn't affect them, they are willing to look past it, and the country is corroded and corrupted because of it. People like you give Earth the chance to be a great place

[–] [email protected] 5 points 5 months ago (3 children)

Kbin, real life, discord, etc

 

TL;DR: Please install https://elpa.gnu.org/packages/emacs-gc-stats.html and send the generated statistics via email to [email protected] after several weeks.

UPDATE: New version 1.3. Added more control over what data is collected (can now disable command name logging); Added reminder functionality.


Many of us know that Emacs defaults for garbage collection are rather ancient and often cause significant slowdowns. However, it is hard to know which alternative defaults will be better.

Emacs devs need help from users to obtain real-world data about Emacs garbage collection. See the discussion in https://yhetil.org/emacs-devel/87v8j6t3i9.fsf@localhost/

I wrote a small package https://elpa.gnu.org/packages/emacs-gc-stats.html that will collect garbage collection stats during Emacs sessions. Please, install it and later (after few weeks) submit the results to [email protected]


Usage:

Add

(require 'emacs-gc-stats)
;; Optionally reset Emacs GC settings to default values (recommended)
(setq emacs-gc-stats-gc-defaults 'emacs-defaults)
;; Optionally set reminder to upload the stats after 3 weeks.
(setq emacs-gc-stats-remind t) ; can also be a number of days
;; Optionally disable logging the command names
;; (setq emacs-gc-stats-inhibit-command-name-logging t)
(emacs-gc-stats-mode +1)

to your init file to enable the statistics acquiring.

When you are ready to share the results, run M-x emacs-gc-stats-save-session
and then share the saved emacs-gc-stats-file (defaults to
~/.emacs.d/emacs-gc-stats.eld) by sending an email attachment to
mailto:[email protected].

Configure emacs-gc-stats-remind to make Emacs display a reminder about
sharing the results.


This package does not upload anything automatically. You will need to
upload the data manually, by sending email attachment. If necessary,
you can review emacs-gc-stats-file (defaults to
~/.emacs.d/emacs-gc-stats.eld) before uploading–it is just a text
file.

The following data is being collected after every command:

  • GC settings gc-cons-threshold and gc-cons-percentage
  • Emacs version and whether Emacs framework (Doom, Prelude, etc) is used
  • Whether gcmh-mode is used
  • Idle time and Emacs uptime
  • Available OS memory (see memory-info)
  • Emacs memory allocation/GC stats
  • Current command name (potentially sensitive data, can be disabled)
  • Timestamp when every GC is finished

Logging the command names can be disabled by setting
emacs-gc-stats-inhibit-command-name-logging customization.

What exactly is being logger is controlled by
emacs-gc-stats-setting-vars, emacs-gc-stats-command-vars, and
emacs-gc-stats-summary-vars.

You can use M-x emacs-gc-stats-clear to clear the currently collected
session data.

You can pause the logging any time by disabling emacs-gc-stats-mode
(M-x emacs-gc-stats-mode).

[–] [email protected] 12 points 1 year ago

Ah yes, the classic "you're either with me or against me"

[–] [email protected] 3 points 1 year ago

It mostly has to do with the server you join. I'm a part of communities that are filled with immature teenagers, but also ones full of helpful discussions (the 3d printing discord comes to mind)

[–] [email protected] 8 points 1 year ago

IMO there's a place for both. A print statement will reveal a flaw in the programmer's thinking regarding the control flow of the program and the state at that time. If a print statement gives something unexpected, you know exactly where to look in the debugger. If it gives you what you expected, it reveals the problem may be elsewhere

[–] [email protected] 10 points 1 year ago* (last edited 1 year ago)

I have a few projects I switch between based on how much time I have and where my interests lie.

My most recent is a from-scratch compiler for a made-up language (MIT), Intercept, written in C with no dependencies (apart from libc, of course). I'm really proud of this one, and have even been lucky enough to work with other people on it.

And then there's my text editor (MIT), which is an homage to Emacs. I just have learned so much from Emacs and like it so much that I had to make my own. At this point it's got a working SDL2 and OpenGL backend, as well as tree-sitter syntax highlighting, and, of course, is extensible through LITE LISP, the built-in programming language.

Finally, my pride and joy, LensorOS (GPLv3). I started this project when I first started learning C++, and through it I have learned amazing things about how computers actually work, from hardware to kernels to userspace.

Just wanted to say, this is a really good idea for a thread! I really enjoy seeing all these amazing projects from everybody

[–] [email protected] 1 points 1 year ago (1 children)

Just going to add that I joined kbin today and it's been a really good experience. Quick loading, consistent login, etc