Open vext01 opened 6 months ago
Oh, one more I just spotted:
Talks about name
, but it's nowhere to be seen. Presumably left over from an earlier design?
Hi! Seems you caught a bit of residue from the global/local label redesign, thanks for reporting it. At one point global and local labels were handled separately, but nowadays they both are variants of StaticLabel
. Seems the documentation is still a bit outdated there.
Is there a way to get their addresses at runtime via the API?
Yep. You can query LabelRegistry::resolve_static
for it. First you have to construct the appropriate StaticLabel
. For that you can either use StaticLabel::local
(if you know which version of the label you need), StaticLabel::first
(if it's the only one), or most likely LabelRegistry::place_local_reference
, which gives you a reference to the last defined local label.
(local labels are essentially global labels with an extra version number added to distinguish between different uses of the same local label).
Is that once per address space, or once per assembler?
Per Assembler. These labels are purely a thing for dynasm-rs. If you want actual executable symbols you need to handle that yourself.
In the second sentence should "local label name" be "global label name"?
Or just label name. Both global and local labels reuse the same rules.
Talks about name, but it's nowhere to be seen. Presumably left over from an earlier design?
Yep. Part of the redesign I mentioned before.
Thanks!
I'll aim to raise a PR to fix these things.
Hi there!
I'm starting to use labels a bit more, and I have a few questions. I may be able to do a pull-request to improve some docs later.
local labels
Is there a way to get their addresses at runtime via the API?
global labels
Is that once per address space, or once per assembler?
In the second sentence should "local label name" be "global label name"?
Thanks!