Hi,
Thanks very much for all your work with river. I'm finding it great
to experiment with. stacktile is working well, and I thought I'd try
riverguile to scratch an itch with interaction between river and Emacs
via a guile repl.
1. I think I found a small bug in riverguile. It compiles okay, but when
I run it, I get the following backtrace (via gdb):
free(): double free detected in tcache 2
Program received signal SIGABRT, Aborted.
__pthread_kill_implementation (no_tid=0, signo=6, threadid=<optimized out>)
at ./nptl/pthread_kill.c:44
Download failed: Invalid argument. Continuing without source file ./nptl/./nptl/pthread_kill.c.
44 ./nptl/pthread_kill.c: No such file or directory.
(gdb) where
#0 __pthread_kill_implementation (no_tid=0, signo=6, threadid=<optimized out>)
at ./nptl/pthread_kill.c:44
#1 __pthread_kill_internal (signo=6, threadid=<optimized out>)
at ./nptl/pthread_kill.c:78
#2 __GI___pthread_kill (threadid=<optimized out>, signo=signo@entry=6)
at ./nptl/pthread_kill.c:89
#3 0x00007ffff7c42866 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
#4 0x00007ffff7c268b7 in __GI_abort () at ./stdlib/abort.c:79
#5 0x00007ffff7c27750 in __libc_message (fmt=fmt@entry=0x7ffff7dc3b34 "%s\n")
at ../sysdeps/posix/libc_fatal.c:150
#6 0x00007ffff7ca3c67 in malloc_printerr (
str=str@entry=0x7ffff7dc6b50 "free(): double free detected in tcache 2")
at ./malloc/malloc.c:5765
#7 0x00007ffff7ca6089 in _int_free (av=0x7ffff7dfeca0 <main_arena>,
p=<optimized out>, have_lock=0) at ./malloc/malloc.c:4534
#8 0x00007ffff7ca87f3 in __GI___libc_free (mem=<optimized out>)
at ./malloc/malloc.c:3391
#9 0x0000555555557737 in get_script_path () at riverguile.c:378
#10 0x0000555555557937 in main (argc=1, argv=0x7fffffffde48) at riverguile.c:417
(gdb) quit
I do have a script in ~/.config/river/layout.scm and if I comment out
the following two lines
/* { .fmt = "%s/riverguile/layout.scm", .needs_env = true, .env = getenv("XDG_CONFIG_HOME") }, */
/* { .fmt = "%s/river/layout.scm", .needs_env = true, .env = getenv("XDG_CONFIG_HOME") }, */
then riverguile works fine (thank you).
I do not have XDG_CONFIG_HOME set (my machine is Ubuntu 23.10, and I
am not aware of having unset this variable.)
2. In Makefile line 44:
$(RM) $(IMG)
there is no IMG variable, so perhaps that line could be deleted
3. Do you know if there is a way to connect a repl to the guile
process that riverguile is running? In Emacs, I can do something like
geiser-connect to attach a repl to a guile process if the process has
opened a port (using --listen=PORT flag). I can't see how to do that
here however.
Best wishes, Stephen