Nicolas Graves <ngra...@ngraves.fr> writes:
> Made some progress and I'll rework on the patches tonight.

I'm looking forward to it!

> Current workflow is the following :
>
> In a guix with v2 patches and current guix-local:
> cd /tmp
> mkdir -p hello
> cd hello
> guix local instantiate hello --> downloads and unpacks hello's source
> cd hello*
> guix local build hello --> builds locally and installs in ./out

This is lovely. I made a rudimentary extension `guix develop`[1] which
was doing the unpacking you describe and generating a 'guix.scm' that
uses the unpacked sources as origin. I'm very interested in your
solution.

The idea that I had with the extension, is that it would unpack the
sources and generate a 'guix.scm' with debugging symbols, then it would
setup a GDB script file to configure a session with source code
debugging with symbols[2]. I decided to wait for your proposal before
continuing implement anything. In the toy example I linked, the only
thing that happens is that it searches for ELF files in the output
derivation and tries to print the symbols that it finds using GDB. I
think it would be nice to not rely on GDB for that and use the
`system vm elf` and `system vm dwarf` guile modules. Andy Wingo has
a nice post using them[3]

[1] https://codeberg.org/pastor/guix-develop
[2]
https://codeberg.org/pastor/guix-develop/src/commit/3aaa574849f676a0d6da563dbb11c175462cb62d/guix/extensions/develop.scm#L229
[3] https://wingolog.org/archives/2014/01/19/elf-in-guile

> This should work for any package except when there are patches or
> snippets, I'll work on fixing that too (probably the simplest is to drop
> the functionality since it's also done in guix local instantiate).
>
> I'll work on a v3 and clarify the situation for patches/snippets
> tonight.

Great!

Thanks for the update, have a good night.


Best regards,
Sergio.

Reply via email to