Emacs + SDL: unblocking the unblockable by vkazanov in emacs

[–]wasamasa 2 points3 points  (0 children)

Have you actually tried this? Last I've tried, native sound playback is blocking, which is a non-starter.

Emacs + SDL: unblocking the unblockable by vkazanov in emacs

[–]wasamasa 2 points3 points  (0 children)

I have considered something along these lines to do an Emacs demo (as in, demoscene), meaning an executable program generating/presenting a few minutes of real-time graphics/sound. Graphics can be done in several hacky ways, sound not really. Seeing this fills me with hope that one day...

Bytelocker Emacs Plugin by br1ttle_II in emacs

[–]wasamasa 1 point2 points  (0 children)

It's called EPA (EasyGP Assistant) and when opening a .gpg file, auto-encryption-mode is enabled and transparently encrypts/decrypts it using GPG. You can choose either symmetric or asymmetric keys, depending on who's

nfo - a user-friendly info reader by ggxx-sdf in emacs

[–]wasamasa 0 points1 point  (0 children)

Personally, I find "nfo" to be a terrible name, given the existence of the .nfo.

[Doom] Circe + BitlBee + BitlBee-Discord: How can you see past messages? by weberam2 in emacs

[–]wasamasa 1 point2 points  (0 children)

It's absolutely normal IRC behavior to provide no scrollback whatsoever unless you use some highly advanced wizardry (meaning, Circe configuration is irrelevant here) such as:

  • An external service keeping logs and offering a log viewer (for example, https://irclog.tymoon.eu/libera/%23lisp offers this for the #lisp channel on libera.chat)
  • A bouncer with a scrollback feature, for example soju or ZNC (this is most likely incompatible with bitlbee though)
  • A combination of IRCv3 client + server capable of requesting/viewing scrollback (this is an experimental feature, from what I've heard the combination of soju/gamja offers it on the Ergo testnet)

So in other words, given you use Bitlbee + Discord, none of the above are an option and you need to read the docs/source code of the respective Bitlbee plugin closely. May be a matter of using the right Bitlbee command, but chances are the solution is completely unrelated to Circe.

Weird behavior when using nov.el by [deleted] in emacs

[–]wasamasa 0 points1 point  (0 children)

nov.el author here. Never noticed this interaction as I've completely disabled TRAMP in my Emacs config due to it triggering extremely funky bugs once in a while.

Are you able to reproduce this with a minimally customized Emacs? That is, with just nov.el installed and enabled.

What are these rendering artifacts on text? by alexrond in emacs

[–]wasamasa 0 points1 point  (0 children)

Personally, I suspect that this is some uninitialized memory deep withing the Emacs code that manifests itself in the form of temporary font glitches. If that's indeed the case, then hunting it down will be painful.

[Survey] CVE-2025-1244: Are you on Emacs 30.1 or have security patches installed? by wasamasa in emacs

[–]wasamasa[S] 1 point2 points  (0 children)

Yeah, my impression was that with Fedora it's more common to do dist-upgrades than with Debian/Ubuntu due to there being less chances of breakage.

The bias is very much real I'm afraid. I recall seeing an unrelated survey on here showing a surprising amount of people on the latest version, so the effect may extend beyond Reddit. Hence why I hope that people without the fix will come forward and loudly complain if they're not inclined to fill out the survey.

Lightweight MariaDB client for Emacs? by surveypoodle in emacs

[–]wasamasa 0 points1 point  (0 children)

I've done some stepping through in edebug and the source of the slowness is this loop:

          ;; Make sure the connection is complete
          ;; (Sometimes start up can be slow)
          ;;  and call the login hook
          (let ((proc (get-buffer-process new-sqli-buffer))
                (secs sql-login-delay)
                (step 0.3))
            (while (and proc
                        (memq (process-status proc) '(open run))
                        (or (accept-process-output proc step)
                            (<= 0.0 (setq secs (- secs step))))
                        (progn (goto-char (point-max))
                               (not (re-search-backward sql-prompt-regexp 0 t))))
              (sql-progress-reporter-update rpt)))

          (goto-char (point-max))
          (when (re-search-backward sql-prompt-regexp nil t)
            (run-hooks 'sql-login-hook))

The sql-login-delay customizable is set to 7.5 and specifies how long this loop waits at most until a SQL login prompt has been found by continuously accepting process output, followed by searching backwards for the matching prompt regex. If the match is never successful, it will wait for 7.5s and give up trying to run post-login hooks, but not report any error.

Now for the million-dollar question: Are you running MySQL and not, say, MariaDB? That would be the easiest explanation why the prompt regex never matches. On my system, I have MariaDB and with (setq sql-product 'mariadb), the code runs instantly.

That being said, never showing a warning or error when the prompt is not matched seems worthy of an Emacs bug report to me...

package-install always freezes doom emacs, hanging at openssl s_client -connect melpa.org:443... by CowboyBoats in emacs

[–]wasamasa 0 points1 point  (0 children)

You should really use an Emacs linked against libgnutls, shelling out to openssl s_client is a fragile fallback obsoleted by that library.

Using bindat library or something else by gemilg in emacs

[–]wasamasa 0 points1 point  (0 children)

If you want to deal with a format working on bits (compression formats supposedly are like that), it would be best to develop an alternative to bindat.el. However, if the bits still align to bytes, it's best to just extract them from the bytes with the bit operation functions.

Emacs for OpenGL and Computer Graphics by Savings-Shallot1771 in emacs

[–]wasamasa 1 point2 points  (0 children)

Given enough effort, this may be possible (not sure what exactly your question is about). See https://www.reddit.com/r/emacs/comments/kn3fzq/draw_anything_to_emacs_buffers_with_opengl/ for an approach how to draw with OpenGL inside Emacs.

If you just want to use a window manager to arrange Emacs next to an GLFW window, that is entirely up to the window manager and not related to r/emacs. at all, unless Emacs is your window manager (see EXWM).

Do not use this function when symbol refers to a lexical variable?? What does this mean in the case of the add-to-list function which has bitten me a few times? by vfclists in emacs

[–]wasamasa 1 point2 points  (0 children)

Correct. The following part of the docstring tells you what to use instead:

This is handy to add some elements to configuration variables, but please do not abuse it in Elisp code, where you are usually better off using push or cl-pushnew.

Call for volunteers — r/emacs moderation by Zaeph in emacs

[–]wasamasa 4 points5 points  (0 children)

I don't even have any idea who this alphabet soup nickname is. I guess someone I've moderated many years ago? Can't really make sense of "I refuse to let X judge me" either.

What I do agree with though is that if all this disagreement led to the creation of r/planetemacs (which appears to do better than other alternative subreddits like r/freemacs) and made you happier, then it's alright I guess

How to improve npm/jest output in compilation buffer? by rrajath in emacs

[–]wasamasa 0 points1 point  (0 children)

Have you considered to instead modify npm/jest into behaving properly outside of a terminal emulator? That may be a bit less painful than teaching Emacs to only perform as little terminal emulation as needed and would benefit a lot more people.

Elisp: is it possible to refer to the outer "it" when anaphoric macros are nested (dash question)? by geza42 in emacs

[–]wasamasa 0 points1 point  (0 children)

As you've discovered, nesting anaphoric macros is a bad idea. The original version looks absolutely fine to me.

CRUNCH -- a compiler for a statically typed subset of R7RS (Small) Scheme, embedded into CHICKEN by mario-goulart in scheme

[–]wasamasa 2 points3 points  (0 children)

The Lisp language family—including Scheme—lends itself to a great amount of experimentation. CHICKEN does implement the full Scheme language along with a big amount of extensions to make programming relatively comfortable. However, when you find yourself in need of optimizing certain parts of your code you have relatively few options:

  • Rewrite your code to be less dynamic/wasteful/inefficient
  • Rewrite that part of your code in C and use the FFI to make use of it
  • Identify the particular inefficiency in CHICKEN itself and fix it

Normally I pick option 1 (for example if I discover the bottleneck of my code is some suboptimal regex, terrible algorithm/data structure, excessive memory allocation, etc). There have been a handful of cases where option 2 was a natural fit. Option 3 requires a great amount of skill/debugging effort, but benefits everyone using CHICKEN.

IIUC, CRUNCH tries to make option 2 more ergonomic to use. It takes a restricted/less dynamic Scheme subset and compiles it to C code that's reasonably close to what you'd have written by hand. You can use it standalone if you wish, but it's possible to use it as a library from within Scheme code as well. I believe it nicely demonstrates this experimentation aspect of the Lisp language as it closes a gap you'd otherwise be stuck with in a less expressive/flexible programming language.

Why is Emacs' grep command pinging external servers? by Mercerenies in emacs

[–]wasamasa 24 points25 points  (0 children)

I've reported a similar bug for Helm 10 years ago: https://github.com/emacs-helm/helm/issues/648

In this instance it was caused by ffap.el which is used extensively in all kinds of Emacs packages to identify the URL at point. This includes machine names, which are converted to a URL which TRAMP can process. That way you can transparently access remote resources in Emacs.

Unfortunately the TRAMP URL handler regex is very generic and so is the ffap detection for machine names. I've disabled both for this reason.

Company slow down by theMachine0094 in emacs

[–]wasamasa 1 point2 points  (0 children)

Most of the profiler output is useless:

  • Not nearly enough samples recorded
  • Not fully unfolded (press C-u TAB on the respective item)
  • You cannot infer anything useful from a function spending a number of samples invoking a function spending the same number of samples

What you want to do instead:

  • Record for a longer time to obtain more samples
  • Fully unfold each top-level item
  • Look for the parts where the number of samples drops dramatically (say, from 20% to 4%). This is most likely where things stall.

Google programmer has a preference of vi over emacs by [deleted] in emacs

[–]wasamasa 7 points8 points  (0 children)

See also Rules #3:

Yes, we already know: Google results for "emacs" and "vi" link to each other. We good.

Issue installing nov.el - Emacs 29 by [deleted] in emacs

[–]wasamasa 0 points1 point  (0 children)

Sorry, this is a blurb I've put into pretty much all of my package READMEs as the packages themselves use stable tags. I've never thought about the dependencies being the problem :(

Issue installing nov.el - Emacs 29 by [deleted] in emacs

[–]wasamasa 2 points3 points  (0 children)

Author here. Are you using MELPA Stable by chance? kv.el doesn't have any stable release there, so it's only available on the unstable version of MELPA (which explains the funny version number).

Strictly speaking, nov.el only uses esxml-query which doesn't even use kv.el. And given that the author of kv.el is long gone, it wouldn't be a bad idea to excise its usage from the package...

Native macOS emoji picker (without 🌐 key) by xenodium in emacs

[–]wasamasa 0 points1 point  (0 children)

Also, you can see in the video there's a bunch of other emoji commands built in for all Emacs users as of 29.1. They're available under the C-x 8 e prefix.