Subject: Re: bug#33848: Store references in SBCL-compiled code are "invisible"

From: Ludovic Courtès <[email-masked]>
Date: Wed, 31 Mar 2021 22:42:24 +0200

Hi,

Pierre Neidhardt <[email-masked]> skribis:

> A brief discussion has ensued on SBCL bugtracker:

Nice, thanks for starting the discussion!

> - It's unlikely that SBCL will change its internal string
>   representation.

Of course, I would not suggest that.

What could have been nice is if there’s a way to mark specific strings
as being ASCII, or if there’s a “byte vector” data type compatible with
strings, for instance.

> - The main recommendation for an easy fix without updating the scanner
>   is that we tweaked our build system to dump the store reference to a
>   separate ASCII file.

That’s a good idea: simple and efficient.  We do that for the initrd,
for instance (commit b36e06c2b0889f1d0f939465589d36887ff24d33).

This could be done in ‘asdf-build-system/sbcl’ I suppose.  I can see two
drawbacks:

  1. Some packages like ‘nyxt’ don’t use it, so we’d have to duplicate
     the phase there.

  2. It may be coarse-grain compared to scanning binaries for references
     (for example, we might retain references to build-only tools, such
     as libraries used only for tests).

That’s probably acceptable though, and certainly better than the status quo.

Thanks,
Ludo’.